2017-05-04 26 views
0

我正在使用MPMoviePlayerController在远程URL上播放视频。当我重复使用播放器播放多个视频并且url不指向视频时,控制器不会发回任何通知。我试过了MPMoviePlayerPlaybackDidFinishNotification,MPMoviePlayerPlaybackStateDidChangeNotification和MPMoviePlayerLoadStateDidChangeNotification。他们都没有被派出。如何使用MPMoviePlayerController处理无效的URL

我也尝试做一个自定义超时函数,并调用下面的播放器的停止函数。但是,没有任何反应。 MPMoviePlayerController似乎在那里无所事事。

[self performSelector:@selector(checkTimeout) withObject:theMovie afterDelay:15]; 
 

 
-(void) checkTimeout { 
 
    [self.moviePlayer stop]; 
 
}

有谁知道如何处理无效网址的MPMoviePlayerController?

+0

显示一些附加代码 –

回答

0

我自己找到了一种解决方案。

看来MPMoviePlayerController在播放多个网址时有问题。如果第二个网址未指向视频或无效,则播放器不会执行任何操作。所以,我最终为每个网址创建了一个MPMoviePlayerController的新实例,并收听MPMoviePlayerPlaybackDidFinishNotification。

0

如果您没有收到无效通知,那么您应该运行持续时间最长的计时器(initialplaybacktime,0),并且一旦在此时间内没有收到MPMoviePlayerReadyForDisplayDidChange notification,则会生成视频不可用的错误。

+0

播放器已添加到用户界面并播放至少一个视频。你的解决方案在这种情况下工作吗? – jarly

+0

无论加载了多少视频并将玩家添加到用户界面,一旦在播放器中加载了新的url,再次重新安排定时器。 – NeverHopeless