2010-12-30 10 views
5

Ich benutze AVPlayer, um einen Audio-Stream abzuspielen, und es ist möglich, es im Hintergrund zu spielen. Ich frage mich, wie ich mit einer Situation umgehen könnte, bei der der Benutzer die Internetverbindung verliert, so dass ich ein Feedback geben oder versuchen könnte, die Wiedergabe nach einigen Sekunden wiederherzustellen.Wie behandelt man AVPlayer-Fehler, während die App im Hintergrund läuft?

EDIT: Ich weiß, dass die Frage betrifft AVPlayer, aber wenn Sie eine Antwort mit MPMoviePlayerController haben, könnte es auch nützlich sein. Gerade jetzt, indem ich MPMoviePlayerController benutze, versuche ich, den MPMovieFinishReasonPlaybackError Fall der MPMoviePlayerPlaybackDidFinishReasonUserInfoKey zu erhalten, indem ich die MPMoviePlayerPlaybackDidFinishNotification abonniere, aber wenn f.e. mein Audio spielt im Hintergrund und ich schalte den Flugzeugmodus ein, ich bekomme diese Benachrichtigung nie; Ich bekomme nur MPMovieFinishReasonPlaybackEnded, und ich weiß nicht, wie man das von dem Fall trennt, dass der Benutzer das Audio selbst stoppt.

Antwort

4

Ich habe versucht, nach der eigentlichen Quelle zu suchen, aber ich erinnere mich, irgendwo gelesen zu haben, dass, wenn die Audiowiedergabe stoppt (aus welchem ​​Grund auch immer), es den Hintergrundfaden abtötet. Die Person, die über das Problem schrieb, sprach darüber, dass es möglich sei, dem Stream einen leeren Audioinhalt zuzuführen, um den Thread am Leben zu erhalten. Sie können möglicherweise eine lokale Benachrichtigung von einem Rückruf-Fehler senden, der dem Benutzer mitteilt, dass das Audio einen Fehler aufweist und in der Anwendung manuell neu gestartet werden muss. Habe nicht genug mit der API herumgespielt, um zu wissen, welcher Callback in diesem Fall der beste ist. Wenn ich den Link finde, den ich suche, werde ich aktualisieren.

EDIT: Hier ist Grant Pannell nehmen auf audio streaming and multitasking.

+0

Link ist tot :( – jocull

+1

Ich habe eine Kopie auf Way Back Machine gefunden http://web.archive.org/web/20110525032820/http://digitaldj.net/2010/07/03/ios4-multitasking- Entwickler-Hölle/ – jocull

+0

@jocull nette Verwendung von Webarchiver –