如何知道电影播放器的PlayControllerbar何时会被解雇?
-
01-10-2019 - |
题
作为标题,当我使用Movieplayer播放电影时,我想知道何时会解散PlayControllerbar,以便我可以控制MoviePlayer中添加的观点。有人知道吗?告诉我,谢谢。
解决方案
我不是100%确定我是否正确理解您。我认为您想做的是:
- 播放电影
- 在(运行)电影的顶部添加自定义视图(覆盖)。
假设我刚写下的内容,我认为您必须考虑以下内容:
在上面添加自定义覆盖
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];
我希望我能提供帮助。
不隶属于 StackOverflow