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