2014-09-22 5 views
6

Ho utilizzato Xcode 6 con iOS 8 SDK.iOS 8 MPMoviePlayerPlaybackDidFinishNotifica non funzionante

Se il video non può essere riprodotto, all'avvio di MPMoviePlayer. MPMoviePlayerPlaybackDidFinishNotification non funziona.

Faccio riferimento a questo articolo: [How to get an error description when playback fails on MPMoviePlayerController ma iOS8 non funziona.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(MPFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.MoviePlayer]; 

Come si può risolvere questo problema? Grazie.

+0

È posso usare 'MPMoviePlayerDidExitFullscreenNotification' penso che probabilmente risolverà il tuo problema – souvickcse

+0

I avere questo stesso problema Credo che sia un bug di iOS 8. Ho aggiunto un timer di 5 secondi e se il video non inizia a giocare prima di quei colpi, mostro un errore e esco. Questo è un terribile trucco, ma l'unica soluzione che attualmente ho. – Kevin

risposta

2

Ho riscontrato lo stesso problema e l'unica soluzione che ho trovato è stata la sostituzione di MPMoviePlayerController con un AVPlayerViewController (disponibile da iOS 8 nel framework AVKit).

1

Assicurarsi che il parametro "oggetto" sia di classe MPMoviePlayerController e non MPMoviePlayerViewController.

Se self.MoviePlayer è un MPMoviePlayerViewController, basta cambiare questo:

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(MPFinished:) 
    name:MPMoviePlayerPlaybackDidFinishNotification 
    object:self.MoviePlayer]; 

a questo:

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(MPFinished:) 
    name:MPMoviePlayerPlaybackDidFinishNotification 
    object:self.MoviePlayer.moviePlayer]; 

L'oggetto invio della notifica è self.MoviePlayer.moviePlayer