2014-09-22 441 views
6

我使用Xcode 6和iOS 8 SDK。iOS 8 MPMoviePlayerPlaybackDidFinishNotification不起作用

如果視頻無法播放,則啓動MPMoviePlayer時。 MPMoviePlayerPlaybackDidFinishNotification不起作用。

我參考這篇文章: [How to get an error description when playback fails on MPMoviePlayerController 但iOS8不起作用。

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

如何做到這一點可以解決這個問題?謝謝。

+0

你可以使用'MPMoviePlayerDidExitFullscreenNotification'我認爲這可能會解決你的問題 – souvickcse 2014-09-23 06:34:04

+0

我有同樣的問題。我相信這是一個iOS 8的錯誤。我添加了一個5秒的計時器,如果視頻沒有開始播放之前,點擊我顯示一個錯誤,並出去。這是一個可怕的黑客,但我目前唯一的解決方案。 – Kevin 2014-10-02 20:00:33

回答

2

我有同樣的問題,我發現唯一的解決方案是用AVPlayerViewController(自AVKit框架中的iOS 8後可用)替換MPMoviePlayerController。

1

確保「對象」參數屬於MPMoviePlayerController類而非MPMoviePlayerViewController。

如果self.MoviePlayer是MPMoviePlayerViewController,只是改變這一點:

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

這樣:

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

發送通知的對象是self.MoviePlayer.movi​​ePlayer