我在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
是免费的。
还有一些我不自由的东西,这种东西正在增长。
感谢。
答案 0 :(得分:0)
您似乎忘了发布bufferList
。