我有一个带有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];
}

10-06 08:54
查看更多