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