Frage

Ich habe eine Anwendung, die Filme anzeigt.Der erste Bildschirm zeigt Schaltflächen mit unterschiedlichen modalen Ansichten.In diesen modalen Ansichten befinden sich Schaltflächen zum Abspielen von Videos.

Ich möchte, dass das Hauptmenü Musik wiedergibt (einfach genug), aber ich möchte, dass es in der zweiten Modalansicht erhalten bleibt, aber aufhört, wenn das Video abgespielt wird.

Ich habe versucht, [AudioPlayer zu stoppen], wenn die Tasten für die Filme gedrückt werden, aber die Musik wird weiter abgespielt.

Ich habe versucht, das Audio in viewDidAppear und viewDidDisappear anzuhalten und abzuspielen.Dadurch wurde der Ton neu gestartet, nachdem die zweite Ansicht angezeigt und während des Videos nicht abgespielt wurde.

Ich hoffe, das macht Sinn. Ich brauche wirklich nur eine Vorstellung davon, wie das Audio die ganze Zeit (in zwei oder drei modalen Ansichten) wiedergegeben werden kann, außer während der Filmwiedergabe.

Hier ist meine vewDidAppear-Methode:

-(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]
   }
}

War es hilfreich?

Lösung

Ihr Modal View Controller versucht, einen generischen Codetagcode zu stoppen, der nicht in ihm vorhanden ist. Der audioPlayer hat den mainMenueViewController, daher muss es derjenige sein, der den Audioplayer anweist, anzuhalten.

Hierfür können Sie NSNotifications verwenden. Jeweils NSNotification wird über den Singleton NSNotificationCenter . Hier sind die grundlegenden Schritte für Ihre Situation:

  1. Ihr Hauptmenü registriert sich für Benachrichtigungen, wenn es fertig ist.
  2. Ihr Hauptmenü enthält Methoden zum Aufrufen, wenn die Benachrichtigungen ausgelöst werden.
  3. Ihr Untermenü löst eine Methode aus, wenn das Audio ausgeschaltet werden muss.
  4. Ihr Hauptmenü wird abgemeldet, wenn es zum Schließen bereit ist.

    Hoffe das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top