2010-11-10 3 views
6

Gibt es eine Möglichkeit zum Abfangen von Ausnahmen (insbesondere bei Netzwerkfehlern /keine Verbindung möglich) bei Verwendung eines MPMoviePlayerControllers?MPMoviePlayerController - Erfassen von Netzwerkfehlern beim Laden eines Films

Ich bin besonders besorgt, dass, sobald eine Instanz des Players mit initWithURL: initialisiert wird, Sie keine Möglichkeit haben zu wissen, ob die Filmladung aus irgendeinem Grund fehlgeschlagen ist.

Ich habe die vorhandene Dokumentation überprüft und erkennen ich eine Benachrichtigung für loadstate durch

moviePlayerLoadStateChanged:(NSNotification*)notification. 

Problem ändert erhalten kann, ist die Loadstate-Konstanten zur Verfügung nicht für die Fehlerbehandlung sorgen:

MPMovieLoadStateUnknown 
MPMovieLoadStatePlayable 
MPMovieLoadStatePlaythroughOK 
MPMovieLoadStateStalled 

(Falls Sie sich wundern, wird MPMovieLoadStateStalled aus irgendeinem Grund nicht während Netzwerkfehlern aufgerufen?)

Es gibt ein veraltetes MPMoviePlayerContentPreloadDidFinishNotification, das ein userInfo-Wörterbuch mit einem "Fehler" -Schlüssel, aber nichts für iOS 3.2 und höher zur Verfügung stellt.

Jede Hilfe würde sehr geschätzt werden.

Antwort

2

Am Ende habe ich das sortiert, indem ich MPMoviePlayerPlaybackDidFinishNotification abonniere und nach MPMovieFinishReasonPlaybackError sehe.

Weitere Details hier https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006953-CH3-SW17

+0

Hey, könnten Sie einen Beispielcode hinzufügen? Der Apple-Dokumentation fehlen Beispiele, und ich kann nicht herausfinden, wie ich das mache, was Sie empfehlen. – Lombas