【问题标题】:sub-millisecond latency in Core AudioCore Audio 中的亚毫秒延迟
【发布时间】:2012-07-01 07:52:02
【问题描述】:

是否可以使用 Core Audio 播放具有亚毫秒延迟的声音?

我尝试过使用具有不同大小和数量的缓冲区的 AudioQueue,也尝试过使用 AudioUnit,但我无法将延迟控制在 30 毫秒以下。

我正在使用示波器来测量从按下 Arduino 上的按钮到声音离开音频插孔之间的时间。 Arduino 通信造成的延迟永远不会超过 1 毫秒。

【问题讨论】:

    标签: core-audio latency audiounit audioqueue low-latency


    【解决方案1】:

    没有。对于亚毫秒延迟(不包括 DAC 延迟),音频驱动程序需要以 44.1k 的采样率提取 32 个样本或更少的缓冲区大小,这在当前硬件上似乎不允许输出音频单元。音频队列在音频单元之上运行,因此延迟更高。

    【讨论】:

    • 我正在替换在 OS 9 上使用 SndManager 系统编写的代码,并且这个旧的 OS 9 代码能够实现比我在新 Mac 上更好的延迟时间。有什么办法可以复制吗?
    • @flutillie,不,没有。现在,根据硬件的不同,您应该能够远低于 30 毫秒,但亚毫秒级的延迟是不可能的。
    • 嗨布拉德,我设法解决了我的问题。通过使用 32 字节缓冲区,我已经将延迟降低到足够小的水平,而不是停止/启动音频单元,而是在我想要静音时发送 0。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2020-04-05
    • 2021-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多