分享一个音视频开发过程中的bug
如题:AUBuffer.h:61:GetBufferList: EXCEPTION (-1) [mPtrState == kPtrsInvalid is false]: ""
资料查了不少,在一个日文网站提到mPtrState == kPtrsInvalid为false
当发出大量此类日志时,这是kAudioUnitProperty_SetRenderCallback
因为未指定回调,因此可以通过指定某种回调来解决。
所以我在代码中发现有:
AURenderCallbackStruct pb;
pb.inputProcRefCon = 0;
pb.inputProc = 0;
AudioUnitSetProperty(mc->audioUnit(), kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &pb, sizeof(pb));
确实没有指定回调路径修改之后,如果不想让它走回调可以在回调里加上判断不走业务代码就行
再者
kAudioOutputUnitProperty_SetInputCallback
如果不指定路径也是一样的会在工作台打印大量的AUBuffer.h:61:GetBufferList: EXCEPTION (-1) [mPtrState == kPtrsInvalid is false]: ""
没有闪退但是影响调试