gpt4 book ai didi

iphone - AudioQueueNewInput 回调延迟

转载 作者:行者123 更新时间:2023-12-03 20:16:24 26 4
gpt4 key购买 nike

无论我提供的缓冲区大小如何,提供给 AudioQueueNewInput 的回调都会以大致相同的时间间隔发生。

例如:

如果您有 0.05 秒的缓冲区并以 44k 录制,则回调将在大约 0.09 秒时首次调用,然后在(0.001 秒)之后立即发生第二次调用。然后您再次等待 ~.09 秒。如果您的缓冲区大小是 0.025。您将等待 0.09 秒,然后几乎立即看到另外 3 个缓冲区。

更改采样率会增加延迟。

录制 16 位 8k 音频会导致缓冲区溢出之间有 0.5 秒的延迟。

所以我怀疑有一个 8000 字节的缓冲区正在幕后使用。当它被填满时,我的回调将使用给定的缓冲区运行,直到它被清空。

我想以尽可能短的延迟录制 16k 16 位音频。鉴于上述情况,我总是看到大约四分之一秒的延迟。有没有办法减少延迟?是否有 Audio Session 属性来设置内部缓冲区大小?我尝试过 kAudioSessionProperty_PreferredHardwareIOBufferDuration 但它似乎没有帮助。

谢谢!

最佳答案

音频队列 API 看起来像是构建在音频单元 RemoteIO API 之上的。小型音频队列缓冲区可能用于在幕后填充较大的 RemoteIO 缓冲区。甚至可能会发生一些速率重采样(在原始 2G 手机上)。

要降低延迟,请尝试直接使用 RemoteIO 音频单元 API,然后请求 Audio Session 为您的应用提供较小的较低延迟缓冲区大小。

关于iphone - AudioQueueNewInput 回调延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4595532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com