使用AudioQueueNewInput时内存泄漏

时间:2014-05-15 08:03:10

标签: ios memory

我正在使用从 SpeakHere 演示中复制的AQRecorder

mRecordFormat is defined in AQRecorder.h: CAStreamBasicDescription  mRecordFormat;

事实证明,方法AQRecorder::StartRecord

中存在内存泄漏

以下是Instrument指出的代码:

AudioQueueNewInput(&mRecordFormat,......     

我查看了AQRecoder.mm,但无法找到任何发布mRecordFormat的代码。 我的问题是:我是否需要编写一些代码来发布mRecordFormat?自从我从Apple网站下载 SpeakHere 演示以来,我认为他们可能忘记发布mRecordFormat

谢谢!

1 个答案:

答案 0 :(得分:0)

存储对AudioQueueRef的引用,并在完成后使用AudioQueueDispose进行处理。

实施例

AudioQueueRef audio_queue;

OSStatus err = AudioQueueNewInput(&format_,
                                  &HandleInputBufferStatic,
                                  this,
                                  NULL,
                                  kCFRunLoopCommonModes,
                                  0,
                                  &audio_queue);

OSStatus err = AudioQueueDispose(audio_queue, true);