AudioServicesCreateSystemSoundID内存泄漏?

时间:2009-04-16 05:02:54

标签: iphone

我刚开始使用Instruments及其泄漏检测功能。我正在监视我的代码,当我调用该方法时,我注意到有泄漏:

AudioServicesCreateSystemSoundID

我基本上使用的是Metronome示例代码中的SoundEffect.m文件。我正在使用原本是.wav的声音文件,我使用Itunes将其转换为aif并将其重命名为caf。它播放得很好,直到我运行仪器,我才意识到有泄漏。

奇怪的是,当我使用不同的声音文件(tick.caf - 来自Mentronome示例项目)时 - 没有泄漏。这里描述了同样的问题,没有真正的答案为什么:

http://discussions.apple.com/thread.jspa?messageID=8360344

无论如何,我的声音文件会导致泄漏的原因是什么? Audio Toolkit对于它试图播放的音频文件特别挑剔吗?

2 个答案:

答案 0 :(得分:2)

我不明白为什么会导致泄密,但是在播放名为aiff的{​​{1}}文件时,AudioServices可能存在错误。尝试使用caf进行转换,以便从mac生成真正的afconvert文件:

caf

答案 1 :(得分:0)

使用AudioServicesDisposeSystemSoundID来处置。