【发布时间】:2012-01-18 09:05:03
【问题描述】:
我有一个带有视图控制器的 AVAudioPlayer 实例。
@property (nonatomic, retain) AVAudioPlayer *previewAudioPlayer;
我在-viewDidLoad初始化它。
NSError *error = nil;
AVAudioPlayer *aNewPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:&error];
self.previewAudioPlayer = aNewPlayer;
[aNewPlayer release];
[self.previewAudioPlayer prepareToPlay];
而且,我在视图控制器-dealloc 方法中释放它。
- (void)dealloc {
[_previewAudioPlayer pause];
[_previewAudioPlayer release];
[super dealloc];
}
点击按钮即可播放音频。
[self.previewAudioPlayer play];
现在,如果视图控制器被解除或弹出,应该调用 dealloc 并且应该停止音频播放器并且应该销毁视图控制器。但是,这不会发生。音频不会停止,因为在音频停止播放之前不会调用 dealloc。这里发生了什么?而且,我如何确保如果用户关闭控制器而不是音频停止。
【问题讨论】:
-
你知道如何在我们创建了AVPlayer实例的ViewController被销毁后继续播放音频吗?
标签: ios uiviewcontroller avaudioplayer