在Android上播放来自amr的音频

时间:2012-08-13 18:06:04

标签: android audio amr

我可以从Socket接收一个字节数组。我需要播放来自此字节数组的音频 - 音频采用AMR 8000Hz编码。

我发现我可以使用MediaPlayer播放AMR音频。但是,MediaPlayer无法播放字节数组中的音乐,我不想将它们写入文件。

有没有办法从android上的字节数组播放AMR声音?

1 个答案:

答案 0 :(得分:2)

Android框架允许您使用AudioTrack类直接从内存中播放音频数据;缺点是音频必须已经被解码成PCM数据。如果您足够幸运地定位到Android 4.1,则会有新的API允许您单独解码数据,以便将其传递到AudioTrack(请参阅MediaExtractorMediaCodec)。但是,在此之前,MediaRecorderMediaPlayer之外没有用于编码/解码的公开API。

如果定位4.1之前的Android版本(我想你可能是这样),你有两个选择:

  • 查找AMR数据的第三方解码器,以便将其传递给AudioTrack
  • 将您的数据保存到文件中(即使是暂时的),以便将其传递给MediaPlayer

HTH