0

我的应用程序必须在 iOS5 和更高版本中运行。我正在将 MPMoviePlayerViewController 添加到 mainWindow 单击按钮时。moviePlayerController 的完成按钮不会从窗口中删除moviePlayerController。

我的代码是

    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:@"001 ATSW" ofType:@"m4v"]];
   self.player =  [[MPMoviePlayerViewController alloc]
                initWithContentURL:url];
[[NSNotificationCenter defaultCenter] addObserver:self         selector:@selector(videoPlayBackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

[self.player.view setFrame:[UIScreen mainScreen].bounds];
[[[UIApplication sharedApplication] keyWindow] addSubview:self.player.view];
[[self.player moviePlayer] play];
  }
 -(void)videoPlayBackDidFinish:(NSNotification*)notification  {

  [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil];

[self.player.moviePlayer stop];
self.player = nil;
[self.player.view removeFromSuperview];
  }

如何在单击完成按钮时删除moviePlayerController。

请提供任何帮助。

4

2 回答 2

0

如文档中所述:

要关闭模态呈现的电影播放器​​视图控制器,请调用该dismissMoviePlayerViewControllerAnimated方法。

与 Apple 的其他预配置控制器(例如邮件撰写控制器或图像选择器控制器)一样,您有责任关闭控制器。

于 2013-02-08T13:26:43.040 回答
0

您可能需要做的是实际使用

presentMoviePlayerViewControllerAnimated:(MPMoviePlayerViewController *)playerVC

方法来呈现 MPMoviewPlayerViewController,而不是直接插入视图。由于 MPMoviewPlayerViewController 在按下完成按钮时试图自行关闭。从我所见,没有什么好的方法可以倾听并像电影结束时那样做。

这可能取决于您的应用程序是如何构建的,但类似于

[[[[UIApplication sharedApplication] keyWindow] rootViewController] presentMoviePlayerViewControllerAnimated:player];

您应该能够替换所有代码以插入视图,然后只需使用

[[[[UIApplication sharedApplication] keyWindow] rootViewController] dismissMoviePlayerViewControllerAnimated];
于 2013-02-08T13:45:01.273 回答