AVAudioPlayer对象是否存在内存引导问题?我在模拟器中使用AVAudioPlayer时出现内存泄漏。我如何创建AVAudioPlayer并不重要。我使用过initWithContentsOfURL
和InitWithData
。下面是代码片段。完整项目@ Github https://github.com/docchang/MemoryLeakAVAudioPlayer
NSError *error;
NSURL *playerURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Bell" ofType:@"m4a"]];
self.playerWithURL = [[AVAudioPlayer alloc] initWithContentsOfURL:playerURL error:&error];
if (!playerWithURL) {
NSLog(@"no %@.%@: %@",@"Introduction2", @"m4a", [error localizedDescription]);
}
playerWithURL.volume = 0.9f;
playerWithURL.numberOfLoops = 0;
[playerWithURL play];
但是在设备上测试时没有内存泄漏。这个问题开始倾向于使用AudioToolBox库,但只是想与stackoverflow人员确认。
答案 0 :(得分:3)
使用AVAudioPlayer时,我遇到了相同的内存泄漏。我在Web上看到了一些关于这种泄漏与AVAudioPlayer和VideoPlayer库发生类似事件的帖子。这似乎是图书馆本身的一个问题(责怪Apple):
答案 1 :(得分:0)
刚刚遇到同样的问题,我刚刚进行了测试。当使用AVAudioPlayer播放声音时,乐器在应用程序启动时显示泄漏。它只在开始时注册了一次。之后产生的声音没有任何进一步的泄漏。
当我使用Instruments在我的iPhone上运行相同的应用程序时,根本没有泄漏。
我正在运行iOS 11.2.5并且Xcode部署目标是11.0
看起来它只是一个Xcode错误,但可能与MacOS有关。