java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren
原創(chuàng)文章,轉(zhuǎn)載請注明出處!
前言:
amr作為一種高壓縮比的音頻格式,受到很多客戶的青睞。本文主要涉及兩部分的內(nèi)容,一是amr如何轉(zhuǎn)為mp3格式,二是如何直接播放amr格式的文件。
1. 如何使用Java將amr格式的文件轉(zhuǎn)化為mp3格式的文件?
要實現(xiàn)轉(zhuǎn)化需要一個依賴:
ws.schild
jave-core
2.4.4
上面的這個依賴本質(zhì)上是封裝一堆對于ffmpeg的調(diào)用接口,因此你的環(huán)境中要安裝ffmpeg,否則單有jar包是沒用的。你可以去下載并安裝你系統(tǒng)對應(yīng)版本的ffmpeg,然后配置環(huán)境變量,最后確認(rèn)ffmpeg -version命令正常使用就表示安裝成功。
有了jar包和ffmpeg,剩下的你只需要如下代碼就可以了:
public boolean amrToMp3(java.io.File source, java.io.File target) throwsInputFormatException {
boolean bool = false;
AudioAttributes audio = newAudioAttributes();
audio.setCodec("libmp3lame");
EncodingAttributes attrs = newEncodingAttributes();
attrs.setFormat("mp3");
attrs.setAudioAttributes(audio);
Encoder encoder = newEncoder();
try{
MultimediaObject multimediaObject = newMultimediaObject(source);
encoder.encode(multimediaObject,target, attrs);
bool = true;
} catch (IllegalArgumentException |EncoderException e) {
e.printStackTrace();
bool = false;
}finally{
returnbool;
}
}
這段代碼傳入源文件路徑和目標(biāo)文件路徑,然后就會把amr轉(zhuǎn)化為mp3。
我本來是想采用這種方法的,因為我本地是可以正常使用的,但是迫于服務(wù)器是基于arm版cpu的redhat 7.6,想要在這上面安裝ffmpeg對我來說極度困難,要先下載ffmpeg源碼,然后編譯,然后配置環(huán)境變量,這個過程中的試錯會耗費相當(dāng)一部分時間,因此開始考慮,能不能用js播放amr文件?
2. 如何直接播放amr格式的文件?
在網(wǎng)上搜索了大量資料后,發(fā)現(xiàn)可以先把 amr轉(zhuǎn)化為base64字符串,然后用js播放base64字符串即可。這個方法有個局限就是:如果base64字符串太長的話,程序運行會出錯,因為我們amr來源于用戶的錄音,因此,我們可以控制錄音時間最大值,所以這個問題得以解決。
這里再多說一句用法,引入js后,先在頁面加載時,初始化這個東西:RongIMLib.RongIMVoice.init();
然后你可以弄個button,點擊的時候觸發(fā)方法,傳入amr轉(zhuǎn)的base64字符串,(注意這個base64字符串一開始的逗號前面那一截不需要)RongIMLib.RongIMVoice.play(base64),頁面這時候就會發(fā)出聲音了。
大家如果想要可以私信我。
這就是處理amr問題的兩個思路 ,弟兄們聽懂了嗎?
總結(jié)
以上是生活随笔為你收集整理的java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows优化大师和闪游浏览器
- 下一篇: Epson机械手程序开发(1)新建一个项