作为标题,当我使用moviePlayer播放电影时我想知道playControllerBar何时被解雇,这样我就可以控制我在moviePlayer中添加的视图。 有人知道吗? 告诉我,谢谢。
答案 0 :(得分:1)
如果我理解正确的话,我不是百分百肯定的。 我假设你想要做的是:
假设我刚写下来的内容,我认为你必须考虑以下事项:
在MPMoviePlayerViewController
之上添加自定义叠加层(据我所知),只有在标准播放器控件设置为无时才允许/可能:
[moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone];
在播放器顶部添加自定义叠加层与基于任何其他视图的addSubview
过程基本相同
[moviePlayerViewController.view addSubview:overlay];
以上代码/概念将适用于3.2及更高版本,正如我刚刚阅读的那样,您显然正在为3.0开发
而不是删除我的答案的第一部分,我现在将解释如何在3.0
上实现相同的效果在3.0上它有点棘手(你现在肯定知道)。 MPMoviePlayerController不是视图控制器,仅在全屏模式下工作。 电影开始播放后,keyWindow会改变!所以我们通过实施以下内容来利用它:
1)在封装MPMoviePlayerController的类中,通过执行以下操作开始侦听UIWindowDidBecomeKeyNotification
:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(keyWindowChanged:)
name: UIWindowDidBecomeKeyNotification
object: nil];
2)使用您的keyWindowChanged:
方法,您可以添加叠加层,以下snipplet正是我实现它的方式:
- (void)keyWindowChanged: (id) sender {
//NSLog(@"keyWindowChanged");
[[NSNotificationCenter defaultCenter] removeObserver: self name: UIWindowDidBecomeKeyNotification object: nil];
UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow];
[moviePlayerWindow addSubview: overlayController.view];
[overlayController performSelector:@selector(fadeIn)];
}
再一次,这只有在MovieControllMode
被“隐藏”时才有效:
[newMPController setMovieControlMode: MPMovieControlModeHidden];
我希望我能提供帮助。