Question

J'ai une application qui affiche des films. Le premier écran affiche des boutons qui présentent différentes vues modales. À l'intérieur de ces vues modales se trouvent des boutons qui jouent des vidéos.

Je veux que le menu principal joue de la musique (assez facile), mais je veux qu'il persiste à travers la deuxième vue modale mais s'arrête lorsque la vidéo commence à jouer.

J'ai essayé [AUDIOPLAYER STOP] lorsque les boutons pour les films sont pressés, mais la musique continue de jouer.

J'ai essayé d'arrêter et de lire l'audio dans ViewDidAppear et ViewDidDisAppear. Cela a fait redémarrer l'audio en présentant la deuxième vue et en ne jouant pas pendant la vidéo.

J'espère que cela a du sens, j'ai vraiment besoin d'une idée de la façon de faire jouer l'audio tout le temps (tout au long de deux ou trois vues modales), sauf pendant la lecture du film.

Voici mon vewDidAppear méthode:

-(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]
   }
}
Était-ce utile?

La solution

Votre contrôleur de vue modale essaie d'arrêter un audioPlayer qui n'existe pas à l'intérieur. La mainMenueViewController a la audioPlayer, alors ce doit être le seul à dire au lecteur audio de s'arrêter.

Vous pouvez utiliser NSNotifications pour cela. Chaque Nsnotification est envoyé par le singleton NSNotificationCenter. Voici les étapes de base de votre situation:

  1. Votre menu principal enregistre pour les notifications lorsqu'il est prêt.
  2. Votre menu principal a des méthodes à appeler lorsque les notifications se déclenchent.
  3. Votre sous-menu tire une méthode lorsqu'il doit éteindre l'audio.
  4. Votre menu principal démêle lorsqu'il est prêt à fermer.

J'espère que cela t'aides!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top