【问题标题】:Android Audio Latency WorkaroundsAndroid 音频延迟解决方法
【发布时间】:2010-11-17 00:18:14
【问题描述】:

因此,Android 开发社区中任何称职的人都知道与 Android 中的低延迟音频相关的问题 3434。对于那些不知道的人,你可以在这里自学。 http://code.google.com/p/android/issues/detail?id=3434

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

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

有人有什么有用的想法吗?

-格里夫

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

【问题讨论】:

    标签: android audio android-ndk


    【解决方案1】:

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

    【讨论】:

    • 嘎。我希望不会是这样。我实际上有机会在 GDC 2011 上与 Android 人员交谈,显然这不完全是硬件问题,而是一个不容易解决的架构问题。
    • 查看@Ian Ni-Lewis 的评论 - 4.1 版本变得更好
    • 我预测不会有架构解决方案,因为 Google 并不关心这些伪装成智能手机的数据挖掘设备的实际性能。
    【解决方案2】:

    Android: sound API (deterministic, low latency) 很好地涵盖了权衡。 TL;DR:NDK 给您带来了一点好处,因为线程可以以更高的优先级运行,但这种好处在 Jellybean 之前是没有意义的,因为整个音频系统都针对 Java 进行了调整。

    运行 4.1 的 Galaxy Nexus 可以得到相当接近 30 毫秒的输出延迟。

    【讨论】:

    • 很好,所以特定的硬件设备可以工作,但只是稍微好一点;这正在成为一场零和游戏。
    猜你喜欢
    • 2013-12-15
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多