2

我可以从Socket. 我需要播放这个字节数组中的音频——音频是用 AMR 8000Hz 编码的。

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

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

4

1 回答 1

2

AudioTrackAndroid 框架允许您使用该类直接从内存中播放音频数据;缺点是音频必须已经解码为 PCM 数据。如果您有幸以 Android 4.1 为目标,则有新的 API 允许您单独解码数据,以便将其传递给AudioTrack(请参阅MediaExtractorMediaCodec)。但是,在此之前,没有公开的用于编码/解码的 APIMediaRecorderMediaPlayer.

如果针对 4.1 之前的 Android 版本(我想您可能是),您有两种选择:

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

高温高压

于 2012-08-13T18:13:52.250 回答