AUBuffer.h:61:GetBufferList: EXCEPTION (-1) [mPtrState == kPtrsInvalid is false]: ""

分享一个音视频开发过程中的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]: ""
没有闪退但是影响调试

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。