iPhone 上的音频硬件延迟
Posted
技术标签:
【中文标题】iPhone 上的音频硬件延迟【英文标题】:Audio hardware latency on the iPhone 【发布时间】:2012-08-21 18:26:29 【问题描述】:我目前正在开发一个应用程序,它可以播放音频文件(mp3,但可以更改为 WAV 以减少解码时间),并同时录制音频。 出于同步目的,我想估计音频开始播放的确切时间。
使用 AudioQueue 控制每个缓冲区,我可以估计第一个缓冲区被耗尽的时间。我的问题是:
-
AudioQueue 缓冲区耗尽和实际播放之间的硬件延迟是多少?
是否有更低级别的 API(特别是 AudioUnit),具有更好的性能(在硬件延迟测量方面)?
是否可以使用 AudioQueue 设置硬件延迟上限,无论是否解码缓冲区? 5ms 似乎是我可以使用的,更多的是需要不同的方法。
谢谢!
【问题讨论】:
【参考方案1】:音频队列 API 在音频单元之上运行,因此使用原始未压缩音频的 RemoteIO 音频单元将允许更低且更具确定性的延迟。可以在某些 ios 设备(使用音频会话 API)上设置的最小 RemoteIO 缓冲区持续时间约为 6 到 24 毫秒,具体取决于应用程序状态。这可能会设置播放和录制延迟的下限,具体取决于您用于延迟测量点的事件。
解码压缩音频可能会从解码开始增加大约一到两个数量级的延迟。
【讨论】:
以上是关于iPhone 上的音频硬件延迟的主要内容,如果未能解决你的问题,请参考以下文章