我有一个带有3个视图控制器的应用程序。第一个生成5分钟的音轨,当进入第二个视图时继续播放setVolume:2.0
,第三个视图控制器也继续播放。但是在第三个ViewCOntroller
上有一个UIButton
可以重新生成第一个ViewController
。当它返回到第一个视图控制器时,它会再次开始播放声音,而上一个已经在播放,因此很混音。现在,声音在第一个init
上是ViewController
,那么我如何在第三个ViewController
上停止它呢?是否有任何代码可以停止所有声音的播放?
最佳答案
您可以在第一个ViewController中将AVAudioPlayer声明为全局变量。结果将是第一个ViewController的每个实例都可以共享同一播放器。
AVAudioPlayer *player;
之后,您可以在ViewDidLoad中执行以下操作:
if (!player) {
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[player play];
} else if (!player.playing) {
[player play];
}