0

我正在尝试MPMoviePlayerController在游戏开始前播放 m4v 文件。游戏是cocos2d根据。

我用MPMoviePlayerController所需的文件制作了一个并将其作为子类添加到CCDirector(它是 的子类UIViewController)。我作为孩子添加的原因MPMoviePlayerController是我希望游戏继续在后台加载。

我的问题是我无法MPMoviePlayerController在视频结束后找到删除它的方法。

请提出建议。

提前致谢。

4

2 回答 2

0

对于 cocos2D 游戏 CCVideoPlayer 类是最好且易于播放的视频。单击此处进行扩展

于 2012-07-20T18:39:50.457 回答
0

您应该能够收听MPMoviePlayerPlaybackDidFinishNotification通知,然后删除子视图。这段代码在我的测试中有效:

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
self.player = moviePlayer;

moviePlayer.controlStyle = MPMovieControlStyleNone;
moviePlayer.shouldAutoplay = YES;
[moviePlayer prepareToPlay];

moviePlayer.view.frame = self.view.bounds;
moviePlayer.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:moviePlayer.view];

[moviePlayer play];

// wait for the video to finish...
MyViewController __weak *weakSelf = self;
[[NSNotificationCenter defaultCenter] addObserverForName:MPMoviePlayerPlaybackDidFinishNotification object:self.player queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *note) {
  [[NSNotificationCenter defaultCenter] removeObserver:weakSelf name:MPMoviePlayerPlaybackDidFinishNotification object:weakSelf.player];

  // remove the view
  [weakSelf.player.view removeFromSuperview];
}];

如果这不起作用,您可能需要发布您的播放器创建和设置代码,以便我们帮助您弄清楚发生了什么。

于 2012-07-22T03:38:02.400 回答