实现MPMoviePlayer超时的最佳方法

时间:2011-05-02 09:34:52

标签: iphone objective-c ios4 mpmovieplayercontroller mpmovieplayer

我有MPMoviePlayer从流加载电影。我用计时器在15秒内实现了超时。但是,是否有其他更好的方法可以在没有计时器的情况下实现超时?

2 个答案:

答案 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];

然后检查电影状态。