Iphone AVAudio Won';在呈现模态视图后不要停止

Iphone AVAudio Won';在呈现模态视图后不要停止,iphone,audio,avaudioplayer,viewdidappear,modal-view,Iphone,Audio,Avaudioplayer,Viewdidappear,Modal View,我有一个显示电影的应用程序。第一个屏幕显示显示不同模式视图的按钮。在这些模式视图中有播放视频的按钮 我希望主菜单播放音乐(足够简单),但我希望它在第二个模式视图中保持不变,但在视频开始播放时停止 当按下电影按钮时,我尝试[音频播放器停止],但音乐仍在播放 我已尝试在ViewDidDisplay和ViewDidEnglishe中停止并播放音频。这使得音频在呈现第二个视图时重新启动,并且在视频播放期间不播放 我希望这是有意义的,我真的需要一个想法,如何让音频播放所有的时间(通过两个或三个模态视图),

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

我希望主菜单播放音乐(足够简单),但我希望它在第二个模式视图中保持不变,但在视频开始播放时停止

当按下电影按钮时,我尝试[音频播放器停止],但音乐仍在播放

我已尝试在ViewDidDisplay和ViewDidEnglishe中停止并播放音频。这使得音频在呈现第二个视图时重新启动,并且在视频播放期间不播放

我希望这是有意义的,我真的需要一个想法,如何让音频播放所有的时间(通过两个或三个模态视图),除了在电影播放

这是我的
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]
   }
}

您的模态视图控制器正在尝试停止一个
音频播放器
,该播放器内部不存在。
mainMenueViewController
具有
audioPlayer
,因此它必须是通知音频播放器停止的控制器

您可以为此使用NSNotifications。每个都是通过单件发送的。以下是针对您的情况的基本步骤:

  • 当主菜单准备就绪时,将注册通知
  • 您的主菜单具有在通知触发时调用的方法
  • 您的子菜单在需要关闭音频时触发一个方法
  • 当主菜单准备关闭时,它将取消注册

  • 希望这有帮助

    欢迎来到StackOverflow!请记住保持在问题的顶部并选择正确的答案。请发布一些代码好吗?我想可能是你让音频播放器停在哪里?它是在创建它的同一个类中吗?我也能看看你的头文件吗?哎呀,我真的很抱歉格式化了。“我不太确定如何解决这个问题。”布雷特-不用担心。你为什么不编辑你的问题来添加代码呢?大多数人在需要添加代码或澄清时都会这样做。注释对于代码来说并不理想。不过,要获得这种格式,请使用“而不是”。我已经为您添加了@Brett代码。实际上,我很想看看你的视图生命周期方法是什么样子的。谢谢,我不知道如何回答这个问题。我有一个视图控制器,当按下按钮时,它在主菜单顶部显示模式视图。视频也以模式视图的形式呈现。它就像一系列模态视图。这是否回答了问题?视图生命周期方法有viewDidLoad、ViewWillDisplay、ViewDidDisplay、ViewWillEnglish、viewWillUnload等。