分享一個音視頻開發(fā)過程中的bug
如題:AUBuffer.h:61:GetBufferList: EXCEPTION (-1) [mPtrState == kPtrsInvalid is false]: ""
資料查了不少,在一個日文網站提到mPtrState == kPtrsInvalid為false當發(fā)出大量此類日志時,這是kAudioUnitProperty_SetRenderCallback因為未指定回調,因此可以通過指定某種回調來解決。
所以我在代碼中發(fā)現有:
AURenderCallbackStruct pb;
pb.inputProcRefCon = 0;
pb.inputProc = 0;
AudioUnitSetProperty(mc->audioUnit(), kAudioUnitProperty_SetRenderCallback, kAudioUnitScope_Input, 0, &pb, sizeof(pb));
確實沒有指定回調路徑修改之后,如果不想讓它走回調可以在回調里加上判斷不走業(yè)務代碼就行
再者
kAudioOutputUnitProperty_SetInputCallback如果不指定路徑也是一樣的會在工作臺打印大量的AUBuffer.h:61:GetBufferList: EXCEPTION (-1) [mPtrState == kPtrsInvalid is false]: ""
沒有閃退但是影響調試