我创建了自定义音频播放器类,它使用AudioUnit和ExtAudioFile. 在我的课堂上,我准备了自己的渲染回调函数,例如
OSStatus MyAURenderCallack (
void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData
);
当我的应用程序在前台时,inNumberFrames操作系统传递的参数总是512or 1024,我的播放器运行良好。
但是当iOS设备睡觉时,inNumberFrames变成了4096,我的播放器无法工作,因为它一次无法准备这么多帧。
帧准备过程很难改进,因为它大量使用extAudioFileRead函数,很难加速。
所以,我想限制inNumberFrames变得大于1024.
我能做到吗?