ios - 在 ViewDidDissapear 上停止音频

标签 ios audio avaudioplayer

我终于用 ViewDidLoad 循环播放了音频,但我真的很难用 ViewDidDissapear 让它停止。我读过 thisthis加上这个论坛上的许多答案和问题。如果我使用 [theAudio stop],我会收到错误,并且大多数其他教程都会出现错误。我究竟做错了什么?

我已经导入了 AVFoundation/AVFoundation.h 框架并添加了 AVAudioPlayerDelegate

    - (void)viewDidLoad
{

    NSString *path = [[NSBundle mainBundle] pathForResource:@"safariSFX" ofType:@"mp3"];
    AVAudioPlayer* theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path]  error:NULL];
    [theAudio play];
    theAudio.numberOfLoops = -1;

    [super viewDidLoad];

}

最佳答案

您需要将 AVAudioPlayer 实例存储为 @property。这样,当 ViewWillDisappear 事件发生时,您可以调用 [theAudio stop]; 在上面的代码中,您创建了一个本地变量,因此没有任何方法来引用它稍后。

关于ios - 在 ViewDidDissapear 上停止音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14487733/

相关文章:

macos - 解决AVPlayer和NSSound之间的延迟

java - Android 媒体播放器 : How to stop if another audio file is being loaded?

ios - 为什么我的多 channel 映射不能正常工作?

ios - 创建 'always logged in' IOS 应用程序最安全的方法是什么?

java - 从麦克风或音频文件中识别拨号音

ios - 有没有办法在 UIView 大小更改时自动更新约束?

objective-c - 从 iOS 应用程序内控制非 iPod 音乐播放器(例如 Spotify)

ios - 如何在特定时间播放音频时调用 Action ?

ios - 如何在 ios 的 UIPICKER VIEW 中禁用滚动效果和阴影效果?

ios - 检测用户何时离开 viewController