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