适用于安卓的低延迟音频 API?

2022-09-02 10:39:39

我有哪些选项可以在延迟最小的 Android 设备上同时播放音频?我是要从罐装SDK中得到任何半体面的东西,还是要求太多了?该文档声称SoundPool类能够以相对良好的性能同时播放多个声音,但是在模拟器和物理设备上运行一些测试后,它似乎非常弱。有没有一个诀窍,或者我必须去一个更低级别的api来做这种事情?我尝试过使用加载了多个样本的单个声音池,并且我尝试了多个声音池,每个声音池管理一个样本。我正在预加载所有内容,因此当我尝试播放时,除了调用SoundPool.play()之外,我没有执行其他代码。


答案 1

许多人对Andriod上的低延迟音频感兴趣。以下是我在该主题上关注的线程:

  • 涵盖今年I/O会议音频相关主题的浪潮
  • 有关在 NDK 中支持低延迟音频的 Android 问题

这篇文章表明Android设备具有ALSA驱动程序(能够实现低延迟音频) - 但似乎低延迟功能不会通过NDK向应用程序公开。

我对Android没有直接的经验,但从我所读到的内容来看,低延迟(小于<10ms左右)还没有成为现实。请发布任何相反的经验!


答案 2

Android 2.3 现在支持对低延迟应用程序的音频 API(通过 OpenSL)进行本机访问。

但是,并非所有硬件设备都具有低延迟音频功能配置文件。因此,在Android市场中,需要低延迟音频延迟滤波器设备的应用程序通过在清单中指定以下内容来不支持它:

<uses-feature android:name="android.hardware.audio.low_latency"/>

推荐