2

我有一个显示电影的应用程序。第一个屏幕显示呈现不同模式视图的按钮。在这些模态视图中是播放视频的按钮。

我希望主菜单播放音乐(很简单),但我希望它在第二个模式视图中持续存在,但在视频开始播放时停止。

按下电影按钮时,我尝试 [audioPlayer stop],但音乐仍在播放。

我尝试在 viewDidAppear 和 viewDidDisappear 中停止和播放音频。这使得音频在呈现第二个视图时重新启动,而不是在视频期间播放。

我希望这是有道理的,我真的只需要知道如何让音频一直播放(通过两个或三个模态视图),除了在电影播放期间。

这是我的vewDidAppear方法:

-(void)viewDidAppear:(BOOL)animated {
   NSString *musicPath = [[NSBundle mainBundle] pathForResource: @"Intro Music" ofType:@"mp3"]; 
   if(musicPath) {
     NSURL *musicURL = [NSURL fileURLWithPath:musicPath];
     audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];
     [musicURL release]; 
   }
   if(!audioPlayer.playing) {
     [audioPlayer play]
   }
}
4

1 回答 1

1

您的模态视图控制器正试图停止audioPlayer其中不存在的。有mainMenueViewControlleraudioPlayer所以必须是告诉音频播放器停止的那个。

您可以为此使用 NSNotifications。每个NSNotification都是通过单例NSNotificationCenter发送的。以下是适合您情况的基本步骤:

  1. 您的主菜单准备好后会注册通知。
  2. 您的主菜单具有在通知触发时调用的方法。
  3. 当需要关闭音频时,您的子菜单会触发一个方法。
  4. 准备关闭时,您的主菜单将取消注册。

希望这可以帮助!

于 2011-03-23T14:20:49.940 回答