【发布时间】:2011-10-04 22:35:51
【问题描述】:
我最近一直在为 iOS 开发一个非常具体的项目,我的研究使我得到了几乎最终的代码。到目前为止,我已经解决了我发现的所有极端困难,但在这一点上我似乎没有任何线索(关于解决它的原因和可能性)。
我设置了我的音频队列(采样率 44100,格式 LinearPCM,每通道 16 位,每帧 2 字节,每帧 1 通道......)并开始使用 12 个音频缓冲区录制声音。但是,每 4 次回调之后似乎会有延迟。
情况如下:前 4 个回调的调用间隔约为 2 毫秒。但是,在第 4 和第 5 之间,有大约 60ms 的延迟。同样的事情发生在 8 号和 9 号之间,12 号和 13 号之间……
似乎每帧的字节数和延迟时间之间存在关系。我知道这一点,因为如果我更改为每帧 4 个字节,我会在第 8 和第 9 之间开始延迟,然后在第 16 和第 17、第 24 和第 25 之间......尽管如此,似乎没有延迟时刻与缓冲区数量之间的任何关系。
回调函数只做两件事:将音频数据(inBuffer->mAudioData)存储在我的类可以使用的数组中;并调用另一个 AudioQueueEnqueueBuffer,将当前缓冲区放回队列中。
有人遇到过这个问题吗?有谁知道,至少,这可能是什么原因?
提前谢谢你。
【问题讨论】:
标签: iphone ios audio callback delay