在 viewWillDisappear 上停止 AVAudioPlayer
Posted
技术标签:
【中文标题】在 viewWillDisappear 上停止 AVAudioPlayer【英文标题】:stop the AVAudioPlayer on viewWillDisappear 【发布时间】:2014-08-05 12:18:00 【问题描述】:我正在开发一个使用 AVAudioPlayer 的 Xcode 应用程序。
@property (nonatomic, strong) AVAudioPlayer *player;
点击图像时,我调用了一个播放音频文件的函数:
-(void)playMusic
if(self.player.currentTime == 0.0)
self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/sound.mp3", [[NSBundle mainBundle] resourcePath]]] error:nil];
self.player.numberOfLoops = 0;
[self.player play];
在 viewWillDisappear 上我需要停止播放器,所以我打电话:
-(void)viewWillDisappear:(BOOL)animated
[self.player stop];
但是上面的代码不起作用,并且音频没有停止播放。
谁能告诉我可能是什么问题?
【问题讨论】:
你有没有试过调用[self.player pause];? 另外你应该使用 _player 而不是 self.player 我试过 [self.player pause];但它不起作用。我也试过 [_player pause]; 你检查过 viewWillDisappear 是否被调用 是的,它被调用了,我尝试使用 NSLog 【参考方案1】:你为什么不停止播放具有相同图像点击的歌曲,
if([player isPlaying] )
[player pause];
else
[player play];
【讨论】:
但我不希望播放器在点击图像时停止。我希望它在视图更改时停止。以上是关于在 viewWillDisappear 上停止 AVAudioPlayer的主要内容,如果未能解决你的问题,请参考以下文章
为啥 UIActivityViewController 会在 Presenter 上调用 viewWillDisappear()?
知道 -viewWillAppear 何时触发但 -viewWillDisappear 尚未触发
通过在父级上呈现新的视图控制器 viewWillDisappear 在我取消订阅事件时触发