我正在使用AVAudioPlayer对象播放音频。我最初创建了一个audioPlayer对象。当播放动画时,我开始播放音频并在动画完成时暂停音频。我最初使用Instruments发现了三个内存泄漏(负责调用者是RegisterEmbedCodecs)。在这个论坛中,"ahmet emrah"建议我添加MediaPlayer框架,这样泄漏数量就减少到了一个。有没有完全摆脱它的方法?谢谢和问候,krishnan。
我解决了这个问题。这个问题只出现在模拟器中,而不是设备上。
你可能想要发布一些代码。这通常是我播放音频文件的方式,我没有出现任何泄漏:
NSString *path = [[NSBundle mainBundle] pathForResource:@"somefile" ofType:@"mp3"];
AVAudioPlayer * newAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
self.theAudio = newAudio; // automatically retain audio and dealloc old file if new file is loaded
[newAudio release]; // release the audio safely
theAudio.delegate = self;
[theAudio prepareToPlay];
[theAudio setNumberOfLoops:0];
[theAudio play];