我在xcode儀器中看到了內存增長,所以在嘗試消除問題後,我已經看到在我的音頻緩衝區回調方法中存在一段代碼,當我擦除時,問題是解決了。 所以,這個回調會發生很多次第二,並導致增長:檢測內存增長
static OSStatus recordingCallback(void *inRefCon,
AudioUnitRenderActionFlags *ioActionFlags,
const AudioTimeStamp *inTimeStamp,
UInt32 inBusNumber,
UInt32 inNumberFrames,
AudioBufferList *ioData)
{
AudioBuffer buffer;
buffer.mNumberChannels = 1;
buffer.mDataByteSize = inNumberFrames * 2;
//NSLog(@"%ld",inNumberFrames);
buffer.mData = malloc(inNumberFrames * 2);
// Put buffer in a AudioBufferList
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0] = buffer;
OSStatus status;
status = AudioUnitRender(audioUnit,
ioActionFlags,
inTimeStamp,
inBusNumber,
inNumberFrames,
&bufferList);
..
..
..
free(buffer.mData);
你能在這裏看到一些行可能會導致? buffer.mdata
是免費的。 還有別的東西,我不自由,這是越來越多。
謝謝。
你的AudioBufferList在哪裏被釋放? – 2012-04-19 14:01:50
你用'..'代替了什麼?每個機會中有沒有「回報」聲明? – 2012-04-19 14:04:53
那裏沒有返回,並且AudioBufferList沒有被釋放。它被分配了嗎? – user1280535 2012-04-19 14:12:45