2017-05-04 2 views
0

Die App, die ich arbeite mit MPMoviePlayerController zum Abspielen von Video an Remote-URLs. Wenn ich den Player für die Wiedergabe von mehr als einem Video wiederverwende und die URL nicht auf ein Video zeigt, sendet der Controller keine Benachrichtigung zurück. Ich habe versucht, MPMoviePlayerPlaybackDidFinishNotification, MPMoviePlayerPlaybackStateDidChangeNotification und MPMoviePlayerLoadStateDidChangeNotification. Keiner von ihnen wurde gesendet.Umgang mit ungültigen URL mit MPMoviePlayerController

Ich habe auch versucht, eine benutzerdefinierte Timeout-Funktion zu tun und ruft die Stop-Funktion des Players wie folgt auf. Aber nichts passiert. MPMoviePlayerController scheint einfach tot zu sein und nichts zu tun.

[self performSelector:@selector(checkTimeout) withObject:theMovie afterDelay:15]; 
 

 
-(void) checkTimeout { 
 
    [self.moviePlayer stop]; 
 
}

Wer weiß, wie mit MPMoviePlayerController ungültige URL zu behandeln?

+0

zeigen einige zusätzlichen Code –

Antwort

0

Ich fand selbst eine Art Lösung.

Es scheint, MPMoviePlayerController hat Probleme mehr als eine URLs spielen. Wenn die 2. URL nicht auf ein Video zeigt oder ungültig ist, macht der Player nichts. Also habe ich am Ende eine neue Instanz von MPMoviePlayerController für jede URL erstellt und MPMoviePlayerPlaybackDidFinishNotification gehört.

0

Wenn Sie keine Benachrichtigung über ungültige URLs erhalten haben, sollten Sie einen Timer mit der Dauer max (initialplaybacktime, 0) ausführen, und wenn Sie innerhalb dieser Zeit MPMoviePlayerReadyForDisplayDidChange notification nicht erhalten, wird ein Fehler generiert, dass das Video nicht verfügbar ist.

+0

Es Player wurde auf der Benutzeroberfläche hinzugefügt und spielte mindestens ein Video. Wird Ihre Lösung in diesem Fall funktionieren? – jarly

+0

Egal wie viele Videos geladen wurden und der Spieler zur UI hinzugefügt wurde oder nicht, nachdem Sie eine neue URL in den Player geladen haben, planen Sie den Timer erneut. – NeverHopeless

Verwandte Themen