gpt4 book ai didi

ios - AVAudioPlayer 播放/暂停/停止和 UIViewController 释放/释放

转载 作者:行者123 更新时间:2023-12-02 01:13:53 29 4
gpt4 key购买 nike

我有一个附加了 View Controller 的 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];

并且,我在 View Controller -dealloc 方法中释放它。

- (void)dealloc {
[_previewAudioPlayer pause];
[_previewAudioPlayer release];

[super dealloc];
}

单击按钮即可播放音频。

[self.previewAudioPlayer play];

现在,如果 View Controller 被关闭或弹出,则应调用 dealloc,并且音频播放器应停止,并且 View Controller 应被销毁。然而,这并没有发生。音频不会停止,因为在音频停止播放之前不会调用 dealloc。这里发生了什么?而且,我如何确保如果用户关闭 Controller 而不是音频停止。

最佳答案

当 View 关闭时,即调用 viewWillDisappear:viewDidDisappear: 方法时,您可以暂停或停止音频。

- (void)viewWillDisappear:(BOOL)animated 
{
[_previewAudioPlayer stop];
[super viewWillDisappear:animated];
}

关于ios - AVAudioPlayer 播放/暂停/停止和 UIViewController 释放/释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8473156/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com