因此,Android 开发社区中任何值得关注的人都知道与 Android 中的低延迟音频相关的问题 3434。对于那些不会的人,您可以在这里进行自我教育。 http://code.google.com/p/android/issues/detail?id=3434

我正在为我的个人项目寻找任何临时解决方法。我听说过通过滚动您自己的 Android 构建并修改 NDK 来向 NDK 公开私有接口。

我所需要的只是一种访问低级 alsa 驱动程序的方法,这些驱动程序已与标准 2.2 版本一起打包。我希望能够将 PCM 直接发送到我设备上的音频硬件。我不在乎生成的应用程序是否无法在市场上分发,并且可能无法在除我的设备之外的任何其他设备上运行。

有人有任何有用的想法吗?

-格里夫

编辑:我应该提到,我知道 AudioTrack 提供了此功能,但我想要更低的延迟 - AudioTrack 大约为 300 毫秒,我想要大约 20-30 毫秒。

有帮助吗?

解决方案

Griff,这就是问题所在,NDK 不会改善已知的延迟问题(甚至有记录)。本机代码中的硬件抽象层目前正在增加延迟,因此它不仅仅是访问低级驱动程序(顺便说一句,无论如何,您不应该依赖那里的 alsa 驱动程序)。

其他提示

安卓:声音 API(确定性、低延迟) 很好地涵盖了权衡。长话短说:NDK 给你带来了一个小小的好处,因为线程可以以更高的优先级运行,但这个好处在 Jellybean 之前是没有意义的,因为整个音频系统都是针对 Java 进行调整的。

运行 4.1 的 Galaxy Nexus 的输出延迟接近 30 毫秒。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top