我可以从Socket
接收一个字节数组。我需要播放来自此字节数组的音频 - 音频采用AMR 8000Hz编码。
我发现我可以使用MediaPlayer
播放AMR音频。但是,MediaPlayer
无法播放字节数组中的音乐,我不想将它们写入文件。
有没有办法从android上的字节数组播放AMR声音?
答案 0 :(得分:2)
Android框架允许您使用AudioTrack
类直接从内存中播放音频数据;缺点是音频必须已经被解码成PCM数据。如果您足够幸运地定位到Android 4.1,则会有新的API允许您单独解码数据,以便将其传递到AudioTrack
(请参阅MediaExtractor
和MediaCodec
)。但是,在此之前,MediaRecorder
和MediaPlayer
之外没有用于编码/解码的公开API。
如果定位4.1之前的Android版本(我想你可能是这样),你有两个选择:
AudioTrack
MediaPlayer
HTH