设置为MPMovieRepeatModeOne时,MPMoviePlayer不会重复

时间:2011-05-26 21:15:03

标签: objective-c mpmovieplayercontroller mpmovieplayer

这个令我困惑。如果有人有任何答案,他们将不胜感激。

我有以下方法在我的应用中加载过程中播放视频:

-(void)playLoadingMovie
{
NSString *moviePath = [[NSBundle mainBundle] pathForResource:@"movie" ofType:@"mp4"];
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL fileURLWithPath:moviePath]];
movieController.moviePlayer.repeatMode = MPMovieRepeatModeOne;
[movieController.moviePlayer setControlStyle:MPMovieControlStyleNone];
[movieController.view setFrame:CGRectMake(0, 0, self.view.frame.size.height, self.view.frame.size.width)];
[self.view addSubview:movieController.view];
NSLog(@"repeatMode: %d",movieController.moviePlayer.repeatMode);
}

在代码中其他地方的适当位置和情况下,所有内容都被正确声明,合成,发布等。这个特殊的方法可以正常工作,除了它没有重复的事实。

您可以看到repeatMode设置为MPMovieRepeatModeOne,当我运行代码时,log语句就会打印出“repeatMode:1”。

我知道我可以做一些hackish并为电影结束时设置一个观察者并让它调用一种方法再次播放电影,但我更愿意让这段代码正常工作。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我发现了它没有重复的原因。在我启动电影之后,我开始了一些内存密集型进程,不幸的是,对于我来说,我在主线程上发生了很多事情,当电影结束时,没有足够的内存可供它重复。跛。

因此代码没有任何问题。

现在我将探索使用其他线程进行某些进程,以便在主线程上腾出空间让电影重复。

答案 1 :(得分:0)

这可能与您正在做的事情相同,但有时访问属性不起作用。你应该尝试setRepeatMode。