日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren

發布時間:2024/1/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原創文章,轉載請注明出處!

前言:

amr作為一種高壓縮比的音頻格式,受到很多客戶的青睞。本文主要涉及兩部分的內容,一是amr如何轉為mp3格式,二是如何直接播放amr格式的文件。

1. 如何使用Java將amr格式的文件轉化為mp3格式的文件?

要實現轉化需要一個依賴:

ws.schild

jave-core

2.4.4

上面的這個依賴本質上是封裝一堆對于ffmpeg的調用接口,因此你的環境中要安裝ffmpeg,否則單有jar包是沒用的。你可以去下載并安裝你系統對應版本的ffmpeg,然后配置環境變量,最后確認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;

}

}

這段代碼傳入源文件路徑和目標文件路徑,然后就會把amr轉化為mp3。

我本來是想采用這種方法的,因為我本地是可以正常使用的,但是迫于服務器是基于arm版cpu的redhat 7.6,想要在這上面安裝ffmpeg對我來說極度困難,要先下載ffmpeg源碼,然后編譯,然后配置環境變量,這個過程中的試錯會耗費相當一部分時間,因此開始考慮,能不能用js播放amr文件?

2. 如何直接播放amr格式的文件?

在網上搜索了大量資料后,發現可以先把 amr轉化為base64字符串,然后用js播放base64字符串即可。這個方法有個局限就是:如果base64字符串太長的話,程序運行會出錯,因為我們amr來源于用戶的錄音,因此,我們可以控制錄音時間最大值,所以這個問題得以解決。

這里再多說一句用法,引入js后,先在頁面加載時,初始化這個東西:RongIMLib.RongIMVoice.init();

然后你可以弄個button,點擊的時候觸發方法,傳入amr轉的base64字符串,(注意這個base64字符串一開始的逗號前面那一截不需要)RongIMLib.RongIMVoice.play(base64),頁面這時候就會發出聲音了。

大家如果想要可以私信我。

這就是處理amr問題的兩個思路 ,弟兄們聽懂了嗎?

總結

以上是生活随笔為你收集整理的java 播放amr_amr格式转mp3和直接播放amr格式的文件-sunziren的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。