2010-10-19 4 views
5

Ich entwickle gerade eine Web-TV-Anwendung, die MPMoviePlayerViewController verwendet. MPMoviePlayer zur Wiedergabe von Streaming-Video-Inhalten auf dem iPhone.MPMoviePlayerViewController stoppt die Wiedergabe beim Ziehen von Kopfhörern

Das Problem, das ich hier habe, ist, dass, sobald ich meine Kopfhörer (während des Fernsehens) trennen den Player stoppt. Aufgrund der Tatsache, dass ich nicht die Standard-Steuerelemente (vorhergehende Schaltfläche, Wiedergabe/Pause-Taste, nächste Schaltfläche), aber meine benutzerdefinierten Steuerelemente zeigt, ist der Benutzer mit dem eingefrorenen Bild fest, es sei denn, er wechselt zu einem neuen Kanal.

Gibt es eine Möglichkeit, eine Unterbrechung der Wiedergabe zu erkennen, die durch Ziehen des Kopfhörers verursacht wird?

Dank für Ihre Tipps und Tricks im Voraus,

sam

Antwort

3

Ich habe eine direkte Antwort auf Ihre Frage nicht. Aber ich denke, MPMoviePlayerPlaybackStateDidChangeNotification wird gut genug sein, um Ihr Problem zu lösen. Sobald Sie benachrichtigt werden, rufen Sie den Wiedergabezustand über die Eigenschaft "playbackState" des Movie-Player-Objekts ab und ergreifen die entsprechenden Maßnahmen.

2

mit einigem Code auf die akzeptierte Antwort Ausarbeiten:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(videoPlaybackStateChanged:) 
              name:MPMoviePlayerPlaybackStateDidChangeNotification 
              object:moviePlayer]; 


- (void)videoPlaybackStateChanged :(NSNotification *)notification 
{ 
    if (moviePlayer != nil && [moviePlayer playbackState] == MPMoviePlaybackStatePaused) 
    { 
     [moviePlayer play]; 
    } 
} 
+0

Es ist erwähnenswert, dass die '[Movieplayer playbackState]' Änderungen an 'MPMoviePlaybackStatePaused' am Ende des Films. Wenn Sie also nicht möchten, dass sich der Film wiederholt, müssen Sie prüfen, ob er nicht mit '[moviePlayer currentPlaybackTime]! = [MoviePlayer duration]' abgeschlossen ist. – zyzof

Verwandte Themen