【问题标题】:How to use Android audio with low latency如何以低延迟使用 Android 音频
【发布时间】:2011-12-07 23:33:52
【问题描述】:

问题:

您可能听说过,Android 不提供低延迟音频 API。我所说的低延迟音频是指您应该能够从麦克风获取音频信号并播放声音,而两者之间没有太多时间间隔(例如 5-7 毫秒)

我尝试过旧的 java(带有 AudioRecord 和 AudioTrack)和“新的”OpenSL ES。它们很糟糕,使应用程序无法使用。The issue was well documented here. BTW,iOS API 可以产生大约 5-7 毫秒的延迟。

寻找解决方法:

但无论如何我都在尝试制作低延迟音频。 Something like this answer describes.

“但是,我只能通过编写我的 自己的代码在内部进行混合并访问低级 音频播放 API 仅用于播放最终混合输出。这 在 .Net Compact Framework 中播放声音的高级方法是 理论上可以复调,但在实践中它们的工作很糟糕 (很多故障、卡顿和失真)。”

这对 Android 有意义吗? An answer is discouraging.

所以我的问题。 Android 真的没有办法实现 10 毫秒的音频延迟吗?

老实说,我并不期待很快就会有解决方案,但只是希望有一位伟大的头脑能够回答这个问题。

【问题讨论】:

    标签: android audio latency


    【解决方案1】:

    android 4.1+ 具有低延迟音频 api,它应该为您提供低于 10 毫秒的延迟。但是价值因硬件而异(欢迎来到丰富多样的 android 世界)。

    “android.hardware.audio.low_latency”的特征描述符也可用于过滤掉缺乏低延迟支持的设备。

    查看http://www.youtube.com/watch?v=Yc8YrVc47TI&feature=player_de%20tailpage#t=1366s

    还有这个:http://createdigitalmusic.com/2012/07/android-high-performance-audio-in-4-1-and-what-it-means-plus-libpd-goodness-today/

    【讨论】:

      【解决方案2】:

      目前没有办法在不修改操作系统的情况下在 Android 设备上获得低延迟音频,即使这样,很多延迟也可能来自硬件实现,因此软件无法解决这个问题。这很可悲,因为 Linux 内核非常有能力实现 Linux build running on an old Palm TX,它实际上有相当不错的延迟。

      【讨论】:

        【解决方案3】:

        作为android.hardware.audio.pro 的后续功能,从 Android 6 开始承诺

        【讨论】:

          猜你喜欢
          • 2023-03-04
          • 1970-01-01
          • 1970-01-01
          • 2012-04-27
          • 1970-01-01
          • 2013-12-15
          • 2019-09-29
          • 2020-10-11
          • 1970-01-01
          相关资源
          最近更新 更多