Wie kann man wissen, wenn die playControllerBar von Movieplayer entlassen werden?
-
01-10-2019 - |
Frage
als Titel, wenn ich spiele Film mit Movieplayer Ich möchte wissen, wenn die playControllerBar entlassen wird, so dass ich meine Ansicht in Movieplayer hinzugefügt steuern kann. Gibt es jemand wissen, dass? Sag mir, danke.
Lösung
Ich bin nicht 100% sicher, ob ich Dich richtig verstehe. Ich gehe davon aus, dass, was Sie tun möchten, ist:
- spielen einen Film
- fügen Sie eine benutzerdefinierte Ansicht (Overlay) auf dem (Lauf) Film.
unter der Annahme, was ich gerade geschrieben habe nach unten, ich glaube, Sie folgende Dinge zu beachten haben:
-
Hinzufügen einer benutzerdefinierte Overlay oben auf
MPMoviePlayerViewController
ist (soweit ich betroffen bin) nur dann erlaubt / möglich, wenn das Standard-Player-Steuerelemente auf none gesetzt werden:[moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone];
-
Hinzufügen Ihrer benutzerdefinierte Overlay auf der Oberseite des Spielers ist im Grunde die gleichen
addSubview
Verfahren wie auf jeder anderen Ansicht[moviePlayerViewController.view addSubview:overlay];
Das obige Code / Konzept wird auf 3.2 arbeiten und später, wie ich jetzt gerade lesen sind Sie offensichtlich die Entwicklung für 3.0
eher zu löschen dann den ersten Teil meiner Antwort werde ich jetzt erklären, wie die gleiche Wirkung auf 3,0 erreichen
auf 3.0 ist es ein bisschen schwieriger (wie Sie sicher bereits wissen). MPMoviePlayerController ist kein View-Controller und funktioniert nur im Vollbild-Modus. Sobald der Film abgespielt wird, ändert sich die keyWindow ! so nutzen wir, dass durch die folgende Umsetzung:
1) innerhalb Ihrer Klasse, die die MPMoviePlayerController kapselt, beginnt mit dem UIWindowDidBecomeKeyNotification
hören, indem Sie die folgenden Aktionen ausführen:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(keyWindowChanged:)
name: UIWindowDidBecomeKeyNotification
object: nil];
2) withing Ihre keyWindowChanged:
Methode Sie Ihre Overlay hinzufügen können, die folgende snipplet ist genau, wie ich es umgesetzt:
- (void)keyWindowChanged: (id) sender {
//NSLog(@"keyWindowChanged");
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIWindowDidBecomeKeyNotification object: nil];
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview: overlayController.view];
[overlayController performSelector:@selector(fadeIn)];
}
Auch dies funktioniert nur, wenn die MovieControllMode
„versteckt“ ist, indem Sie das:
[newMPController setMovieControlMode: MPMovieControlModeHidden];
Ich hoffe ich konnte helfen.