AVAudio在呈现模态视图后不会停止

时间:2011-03-23 14:14:33

标签: iphone audio avaudioplayer viewdidappear modal-view

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

我希望主菜单播放音乐(足够简单),但我想让它在第二个模态视图中保留,但在视频开始播放时停止播放。

按下电影按钮时,我尝试[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]
   }
}

1 个答案:

答案 0 :(得分:1)

您的模态视图控制器正在尝试停止其中不存在的audioPlayermainMenueViewControlleraudioPlayer,因此 it 必须是告诉音频播放器停止的那个。

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

  1. 您的主菜单在准备就绪时注册通知。
  2. 您的主菜单包含在通知触发时调用的方法。
  3. 您的子菜单会在需要关闭音频时触发方法。
  4. 您的主菜单在准备关闭时取消注册。
  5. 希望这有帮助!

相关问题