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.

War es hilfreich?

Lösung

Ich bin nicht 100% sicher, ob ich Dich richtig verstehe. Ich gehe davon aus, dass, was Sie tun möchten, ist:

  1. spielen einen Film
  2. 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:

  1. 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];
    
  2. 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.

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