Domanda

Ho un'applicazione che mostra i film.La prima schermata mostra i pulsanti che presentano diverse visualizzazioni modali.All'interno di queste visualizzazioni modali ci sono pulsanti che riproducono video.

Voglio che il menu principale riproduca la musica (abbastanza facile), ma voglio che persista nella seconda visualizzazione modale ma si fermi quando inizia la riproduzione del video.

Ho provato [audioPlayer stop] quando vengono premuti i pulsanti per i film, ma la musica continua a suonare.

Ho provato a interrompere e riprodurre l'audio in viewDidAppear e viewDidDisappear.Ciò ha fatto riavviare l'audio dopo aver presentato la seconda visualizzazione e non riprodotto durante il video.

Spero che questo abbia senso, ho solo bisogno di un'idea su come riprodurre l'audio tutto il tempo (in due o tre visualizzazioni modali) tranne durante la riproduzione del film.

Ecco il mio metodo 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]
   }
}
È stato utile?

Soluzione

Il tuo controller di visualizzazione modale sta cercando di fermare un audioPlayer che non esiste al suo interno. Il mainMenueViewController ha il audioPlayer, quindi esso deve essere quello che dice al lettore audio di fermarsi.

Puoi utilizzare NSNotifications per questo. Ogni NSNotification viene inviato tramite il singleton NSNotificationCenter . Ecco i passaggi di base per la tua situazione:

  1. Il menu principale registra le notifiche quando è pronto.
  2. Il menu principale dispone di metodi da chiamare quando vengono attivate le notifiche.
  3. Il sottomenu attiva un metodo quando è necessario disattivare l'audio.
  4. Il menu principale viene annullato quando è pronto per essere chiuso.

Spero che questo aiuti!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top