我有MPMoviePlayer从流加载电影。我用计时器在15秒内实现了超时。但是,是否有其他更好的方法可以在没有计时器的情况下实现超时?
答案 0 :(得分:0)
注册MPMoviePlayerLoadStateDidChangeNotification
。在其处理程序中,检查当前的loadstate并屏蔽MPMovieLoadStateStalled
。
- (void)MPMoviePlayerLoadStateDidChange:(NSNotification *)notification
{
//is the player stalled, hence possibly starving?
if ((movieController_.loadState & MPMovieLoadStateStalled) == MPMovieLoadStateStalled)
{ //yes->do something
NSLog(@"hey there, I am starving to death here");
}
}
你可能想在上面的if子句中注册一个计时器 - 例如持续10秒。一旦宝宝没有进一步的状态变化就会耗尽时间,请做一些事情来终止/跳过视频播放。
答案 1 :(得分:0)
我不确定,但我认为可以使用performSelector
作为计时器?
[self performSelector:@selector(checkTimeout:) withObject:theMovie afterDelay:15];
然后检查电影状态。