2014-09-22 81 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