在Android中播放音频的绝对最快方式是什么?

时间:2013-08-02 05:05:23

标签: android opensl

最快”,我的意思是 最低延迟

我所知道的两种方法是:

  1. 使用android.media.AudioTrack
  2. 将OpenSL ES与NDK / C ++一起使用
  3. 这两个中哪个更快?如果还有其他选择,请赐教。

    更多细节:假设我的应用程序将播放易于使用本机硬件格式的声音。 E.G.,如果原生播放采样率是44.1KHz,我会给它一个44.1K的声音。如果原始采样率是48KHz,我会给它一个48KHz的声音。不需要系统混合器或重新采样器。

1 个答案:

答案 0 :(得分:0)

上次检查Android源代码时,只有两个使用Jellybean中添加的低延迟路径的API是OpenSL ESSoundPool(也可能是ToneGenerator,但我猜这与此无关。)

如果你有一堆静态声音,使用SoundPool将是最方便的选择。对于实时生成的音频,您必须使用OpenSL ES。

对于要选择低延迟路径需要满足的条件列表,我建议您使用libaudioflingerlibwilhelm的源代码。简短摘要:使用原生采样率,单声道或立体声线性PCM,无效果。