2010-07-24 3 views
7

Ich erstelle ein iPad-Add und verwende einen MPMoviePlayerViewController, um ein Video abzuspielen.iPad SDK: Wie geh ich in die fertige Schaltfläche von MPMoviePlayerViewController?

Das Video belegt den gesamten iPad-Bildschirm so.

playerViewController.view.frame = self.view.frame; 

Ich brauche eine Möglichkeit für den Benutzer in der Lage sein, eine Taste zu drücken, um einen anderen Bildschirm zu gehen.

Ich stelle fest, dass automatisch eine Schaltfläche "Fertig" im Nav-Controller erscheint, wenn ich einen MPMoviePlayerViewController erstelle.

Meine Fragen:.

a) Gibt es trotzdem in die bestehende getan Taste Haken? Im Grunde möchte ich nur den View-Controller ablehnen.

b.) Wenn das nicht funktioniert. Wie kann ich meine eigene benutzerdefinierte Schaltfläche hinzufügen? Wie ich oben erwähnt habe, belegt der MPMoviePlayerViewController den gesamten Bildschirm. Eine Idee, die ich hatte, war, den MPMoviePlayerViewController in einem Frame zu erstellen und etwas vertikalen Platz zu lassen, damit ich meine eigene Symbolleiste hinzufügen konnte.

Ich würde Vorschläge zur Implementierung eines.) Bevorzugen?

Wenn das nicht möglich ist, vielleicht ein paar Vorschläge, wie Sie den MPMoviePlayerViewController über einige Tasten drücken?

Alle Hilfe wird geschätzt.

+0

Bitte meiner Antwort hier überprüfen: http://stackoverflow.com/a/29516352/1728118 –

Antwort

10

Aus der Dokumentation:

die Schaltfläche Fertig verursacht Filmwiedergabe, während der Player Übergänge aus Vollbild-Modus zu unterbrechen. Wenn Sie dieses Szenario in Ihrem Code erkennen möchten, sollten Sie andere Benachrichtigungen wie MPMoviePlayerDidExitFullscreenNotification überwachen.

Also, versuchen Sie beobachten diese Meldung:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayerDidExitFullscreen:) 
              name:MPMoviePlayerDidExitFullscreenNotification 
              object:nil]; 

Und später:

- (void)moviePlayerDidExitFullscreen:(NSNotification *)theNotification { 
    // do whatever you need to... 
} 

Edit: Ich glaube, ich Ihre Frage falsch verstanden. Was Sie wollen, ist die Methode
-dismissMoviePlayerViewControllerAnimated

Ich nehme an, Sie präsentieren es -presentMoviePlayerViewControllerAnimated: mit? Sie können eine Schaltfläche mit moviePlayer.navigationItem.rightBarButtonItem (oder links, oder was auch immer) hinzufügen. Setzen Sie das Ziel dieser Schaltfläche auf Ihren View-Controller und fangen Sie diese Aktion ab, um -dismiss.. aufzurufen.

+0

Ich brauche wirklich nur einen Weg, um den Benutzer zu ermöglichen, Schließen Sie den ViewController.In der Tat möchte ich nur: [selbst entlassenModalViewControllerAnimated: YES]; Ich habe versucht, für MPMoviePlayerDidExitFullscreenNotification Registrierung, die gut funktioniert, aber nicht den gewünschten Effekt. Ideen? – butchcowboy

+0

Ich habe versucht, eine Schaltfläche hinzuzufügen und dann mp.navigationitem.rightBarButtonItem zuzuweisen, aber es wurde nicht angezeigt. Hat jemand ein Beispiel dafür? – butchcowboy

+0

Hat jemand eine Lösung dafür gefunden? Überall gegoogelt ... Wie kann ich die modale Ansicht abhören, die von der Erweiterung des Controllers und dem Überschreiben der Dismiss-Methode abgeleitet wurde? – user281300

8

Hallo es getan werden kann, mit was gesagt jbandes

[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:theMoviePlayer.moviePlayer]; 
+0

die auch aufgerufen wird, wenn der Film fertig abgespielt wurde, ohne auf die Schaltfläche Fertig –

+0

@ presentMoviePlayerViewControllerAnimated Max MacLeod Benutzer gedrückt hat, dann ist die MPMoviePlayerDidExitFullscreenNotification wird aufgezogen werden. –

+0

Super! Das funktioniert auch auf dem 'MPMoviePlayerViewController', wenn die Done-Taste gedrückt wird. Die 'MPMoviePlayerWillExitFullscreenNotification' wird dort nicht ausgelöst. –

Verwandte Themen