我刚开始使用Instruments及其泄漏检测功能。我正在监视我的代码,当我调用该方法时,我注意到有泄漏:
AudioServicesCreateSystemSoundID
我基本上使用的是Metronome示例代码中的SoundEffect.m文件。我正在使用原本是.wav的声音文件,我使用Itunes将其转换为aif并将其重命名为caf。它播放得很好,直到我运行仪器,我才意识到有泄漏。
奇怪的是,当我使用不同的声音文件(tick.caf - 来自Mentronome示例项目)时 - 没有泄漏。这里描述了同样的问题,没有真正的答案为什么:
http://discussions.apple.com/thread.jspa?messageID=8360344
无论如何,我的声音文件会导致泄漏的原因是什么? Audio Toolkit对于它试图播放的音频文件特别挑剔吗?
答案 0 :(得分:2)
我不明白为什么会导致泄密,但是在播放名为aiff
的{{1}}文件时,AudioServices可能存在错误。尝试使用caf
进行转换,以便从mac生成真正的afconvert
文件:
caf
答案 1 :(得分:0)
使用AudioServicesDisposeSystemSoundID来处置。