項目源碼:http://git.oschina.net/linin630/AACandroid
參考:http://bashell.sinaapp.com/aacencoderios
http://bashell.sinaapp.com/voaacencodergit
以前作的即時通信項目,是統一使用mp3格式發送語音,但此次由於新來的ios開發不會轉音頻(竟然不會??),只能由我來轉aac去配合ios。shell
剛開始查了不少資料,基本都說什麼用speex、ffmeg轉之類的,惋惜都沒有現成能用的,最終找到了基於faac實現的jni庫,徹底符合個人需求,因而立刻拿來用。緩存
通過測試,http://bashell.sinaapp.com/aacencoder這篇文章裏面的代碼直接用的話,在部分手機是會報錯的,緣由是部分機型最小緩存大小(AudioRecord.getMinBufferSize)比較高,用樓主的代碼會設進一個比較低的值致使搞錯(並且只要bufferSize不同就確定會出問題的)。bash
樓主估計也是過久以前寫的代碼了,也沒去完善,直接建議使用VoAAC,我稍微修改了下,已經解決這問題了。app
具體代碼在lwx.linin.aac.AAC中,能夠稍微看下(由於畢竟效率比較低都被嫌棄了的代碼,不看也無所謂,直接用VoAAC就行)工具
根據樓主的代碼稍微修改了下,工具類用法簡單,而且加了個錄音失敗就從新使用其他的採樣率從新開始錄音的代碼,雖然我以爲應該沒什麼用啦。。。測試
一、項目關鍵spa
二、使用方法
三、記得加上權限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />