首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioToolbox -录制回调延迟

AudioToolbox -录制回调延迟
EN

Stack Overflow用户
提问于 2011-07-14 07:35:07
回答 1查看 1.2K关注 0票数 4

最近,我一直在为iOS做一个非常具体的项目,我的研究使我几乎完成了最终的代码。到目前为止,我已经解决了我发现的所有极端困难,但在这个问题上,我似乎没有线索(关于解决它的原因和可能性)。

我设置了我的音频队列(采样率44100,格式LinearPCM,每通道16位,每帧2字节,每帧1通道...)并开始使用12个音频缓冲区录制声音。然而,似乎在每4个回调之后都会有延迟。

情况如下:以大约2ms的间隔调用前4个回调。但是,在4号和5号之间,有大约60ms的延迟。同样的事情发生在8号和9号之间,12号和13号之间,还有...

似乎在每帧的字节数和延迟的时刻之间存在关系。我之所以知道这一点,是因为如果我更改为每帧4字节,在第8和第9帧之间开始有延迟,然后在第16和17、第24和第25帧之间出现延迟。尽管如此,在延迟时刻和缓冲区数量之间似乎没有任何关系。

回调函数只做两件事:将音频数据(inBuffer->mAudioData)存储在我的类可以使用的数组上;调用另一个AudioQueueEnqueueBuffer,将当前的缓冲区放回队列中。

有没有人已经经历过这个问题?至少,有没有人知道它的原因是什么?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-14 07:57:17

音频队列API似乎运行在RemoteIO音频单元API之上,谁的实际音频缓冲区大小可能与您的音频队列缓冲区大小无关,并且在您的示例中大于该大小。因此,每当RemoteIO缓冲区准备就绪时,您的一堆较小的AQ缓冲区很快就会被填满。然后你会得到更长的延迟,等待一些更大的缓冲区被样本填充。

如果您想更好地控制(间隔更均匀)缓冲区延迟,请尝试直接使用RemoteIo音频单元。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6686930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档