低延迟的Androidaudioapi?

我有什么select在Android设备上同时播放audio,延迟最less? 我会从jar装SDK中得到什么一半的体面,还是那个要求太高? 该文档声称,SoundPool类能够同时播放多个声音,而且性能相对较好,但是在模拟器和物理设备上运行一些testing后,它似乎很弱。 有没有一个技巧,或者我必须去一个更低层次的API这种事情? 我已经尝试使用一个单一的声音池加载多个样品,我已经尝试了多个声音池,每个pipe理一个样品。 我正在预加载所有内容,所以当我尝试播放时,除了调用SoundPool.play()之外,没有其他代码正在执行。

Solutions Collecting From Web of "低延迟的Androidaudioapi?"

许多人对Andriod的低延迟audio感兴趣。 以下是关于主题的主题:

  • 来自今年I / O大会的audio相关话题。
  • 关于在NDK中支持低延迟audio的Android 问题 。

这篇文章build议Android设备具有ALSA驱动程序(能够实现低延迟audio) – 但低延迟function似乎并未通过NDK提供给应用程序。

我没有Android的直接经验,但从我读到的低延迟(小于10毫秒左右)是不现实的。 请发表任何相反的经验!

Android 2.3现在支持本地访问audioAPI(通过OpenSL)用于低延迟应用程序。

但是,并非所有的硬件设备都具有低延迟的audio特征configuration文件。 因此,通过在清单中指定以下内容,需要低延迟audio捕捉filter设备的应用程序不支持Android市场:

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

我没有任何Android的经验,但我写了类似的东西的Windows Mobile。 这些设备本身当然能够以低延迟(25ms以下)实时混合多个声音,但是通过“多个”我可能是4或5(而不是30至40)。 但是,我只能通过编写我自己的代码来完成这个令人满意的代码,这个代码在内部完成了混音,并且只有在播放最终混合输出时才访问低级audio播放API。 在.Net精简版框架中播放声音的更高层次的方法在理论上是可以复音的,但是实际上它们工作的非常糟糕(大量的小故障,口吃和失真)。

我怀疑AndroidaudioSDK有同样的问题,所以你可能不得不自己写。

请参阅我对Android的回答:声音API(确定性,低延迟) 。

Android设备的延迟取决于API,更多取决于特定设备的硬件和驱动程序。 启用低延迟播放会消耗更多的能量,并增加audio毛刺的机会,因此许多OEM厂商会故意放大播放缓冲区。