iOS 8 MPMoviePlayerPlaybackDidFinishNotification无法工作

7

我使用的是带有iOS 8 SDK的Xcode 6。

如果在启动MPMoviePlayer时视频无法播放,MPMoviePlayerPlaybackDidFinishNotification不起作用。

我参考了这篇文章: [如何在MPMoviePlayerController播放失败时获取错误描述但在iOS 8上不起作用。

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

怎样才能解决这个问题?谢谢。

你可以使用 MPMoviePlayerDidExitFullscreenNotification,我认为这可能会解决你的问题。 - souvickcse
我也遇到了同样的问题。我相信这是iOS 8的一个bug。我添加了一个5秒钟的计时器,如果视频在此之前没有开始播放,我就会显示一个错误并退出。这是一个可怕的hack,但目前我唯一的解决方案。 - Kevin
2个回答

3

我曾经遇到过相同的问题,唯一找到的解决方案是用AVPlayerViewController (在AVKit框架中从iOS 8开始提供)代替MPMoviePlayerController。


1

请确保"object"参数是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.moviePlayer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接