1
我可以從Socket
接收一個字節數組。我需要從這個字節數組播放音頻 - 音頻編碼爲AMR 8000Hz。在Android上播放來自amr的音頻
我發現我可以用MediaPlayer
播放AMR音頻。但MediaPlayer
不能從字節數組播放音樂,我不想將它們寫入文件。
有沒有辦法從Android上的字節數組播放AMR聲音?
我可以從Socket
接收一個字節數組。我需要從這個字節數組播放音頻 - 音頻編碼爲AMR 8000Hz。在Android上播放來自amr的音頻
我發現我可以用MediaPlayer
播放AMR音頻。但MediaPlayer
不能從字節數組播放音樂,我不想將它們寫入文件。
有沒有辦法從Android上的字節數組播放AMR聲音?
Android框架允許您使用AudioTrack
類直接從內存播放音頻數據;缺點是音頻必須已經解碼成PCM數據。如果您足夠幸運能夠瞄準Android 4.1,則有新的API允許您單獨解碼數據,以便將其傳遞到AudioTrack
(請參閱MediaExtractor
和MediaCodec
)。然而,在此之前,除了MediaRecorder
和MediaPlayer
之外,沒有用於編碼/解碼的暴露的API。
如果前4.1瞄準一個版本的Android(我想你可能是)你有兩個選擇:
AudioTrack
MediaPlayer
HTH
謝謝你,我還以爲是相同的。你知道任何第三方庫解碼AMR到PCM? – 2012-08-13 18:20:35
谷歌搜索拉上了這一個。看起來它可能是本地代碼,所以你需要NDK:http://sourceforge.net/projects/opencore-amr/ – Devunwired 2012-08-13 18:27:00