我有一個AVAudioPlayer實例附加視圖控制器。AVAudioPlayer播放/暫停/停止和UIViewController發佈/ dealloc
@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];
現在,如果視圖控制器駁回或pop'ed,dealloc的應該叫和音頻播放器應該停止和視圖控制器應該被銷燬。但是,這不會發生。音頻不會停止,因爲在音頻停止播放之前不會調用dealloc。這裏發生了什麼?而且,我如何確保如果用戶解散了控制器而不是音頻停止。
你知道如何播放繼續音頻後,我們已經創建了AVPlayer實例的ViewController。 –