什么会影响音频单元渲染回调周期(周期)?

what will affect audio-unit render callback cycle(period)?

我使用音频单元(子类型:VPIO)来播放音频。

网络发送的音频有抖动

问题: 1.音频单元启动时间不固定,有时250MS,有时400MS(不同 iPhone iPad ) 2. play-callback period 有时甚至没有.such us 8K Sample_rate, 大部分时间在 23milliseconds.340~342BYTE 内被调用(playback callback)。但 偶尔,回调时间间隔 130+ ms,并且 ioData->mBuffers[0].mDataByteSize= 340 byte alse。我没有在render回调函数中进行耗时的操作。只需将数据复制到 IOdata 即可。数据足够了。

                          PlayCallback(void *inRefCon,

                           AudioUnitRenderActionFlags *ioActionFlags,

                           const AudioTimeStamp *inTimeStamp,

                           UInt32 inBusNumber,

                           UInt32 inNumberFrames,

                           AudioBufferList *IOData){copy data from my buffer }

我想知道什么会影响音频渲染回调周期(周期)?

后台模式通常会导致回调间隔或缓冲区大小增加 4 倍,可能会节省电池电量(更长的间隔允许 OS 减少音频硬件 DMA 的频率,或唤醒您的应用程序来自 sleep/nap 模式的频率较低)。

打开或关闭 Siri 语音识别可能会影响为麦克风芯片和相关音频输入电路供电所需的时间。是否有任何其他应用程序也配置了音频会话也可能影响启动时间。 iOS 设备的不同型号的音频电路不同。

原因是录音。几乎我在录音和播放时使用不同的音频单元对象,但它们在相同的音频会话上下文中。一些操作影响了record-unit callback fun的周期,耗费了很多时间,结果播放audio unit callback也受到了影响