[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(videoFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:self.moviePlayer];
正常这个Notification是在视频播放完成、玩家手动触发视频结束和视频播放出错时调用,现在升级到11.3之后莫名其妙在播放刚执行的时候就触发了,目前还没有找到触发的原因,这个Notification抛出理论上是MPMoviePlayer自己的逻辑,也有可能是其他设置或者操作导致了这个控件抛出的,这个大家一起找找原因吧
我临时的解决方案是:判断该推送触发时视频的播放状态,如果是正在播放中就不执行结束,目前测试11.3版本和以下都可以兼容。
-(void) videoFinished:(NSNotification*)notification
{
if(_videoPlayer != nullptr)
{
if([self.moviePlayer playbackState] != MPMoviePlaybackStatePlaying)
{
[self mainTheadVideoFinished];
}
}
}
这个MPMoviePlayer估计快要被苹果抛弃了,更新几乎没有,这次莫名其名除了这个问题,以后需要启用新的视频解决方案了。