首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道moviePlayer的playControllerBar何时会被解散?

如何知道moviePlayer的playControllerBar何时会被解散?
EN

Stack Overflow用户
提问于 2010-06-30 14:13:59
回答 1查看 899关注 0票数 0

作为标题,当我使用moviePlayer播放电影时,我想知道playControllerBar何时会被清除,这样我就可以控制在moviePlayer中添加的视图。有人知道这件事吗?告诉我,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-30 15:45:38

我不能百分之百确定我是否理解正确。我假设你想要做的是:

  1. 播放电影
  2. 在(正在运行的)电影之上添加自定义视图(覆盖)。

假设我刚刚写下了什么,我认为你必须考虑以下事情:

  1. 只有在标准播放器控件设置为none的情况下,才允许/可能在MPMoviePlayerViewController上添加自定义覆盖:

在播放器顶部的setControlStyle:MPMovieControlStyleNone;

  • adding moviePlayerViewController.moviePlayer你的自定义覆盖基本上是相同的addSubview程序作为任何其他视图

moviePlayerViewController.view addSubview:overlay;

上面的代码/概念将在3.2和更高版本上工作,因为我刚刚读到你显然是在为3.0进行开发

我现在不会删除我答案的第一部分,而是解释如何在3.0上实现同样的效果

在3.0上,这有点棘手(你现在肯定知道了)。MPMoviePlayerController不是一个视图控制器,只能在全屏模式下工作。一旦电影开始播放,keyWindow就会改变!因此我们通过实现以下代码来利用这一点:

1)在封装MPMoviePlayerController的类中,通过执行以下操作开始侦听UIWindowDidBecomeKeyNotification

代码语言:javascript
复制
        [[NSNotificationCenter defaultCenter] addObserver: self 
                                             selector: @selector(keyWindowChanged:) 
                                                 name: UIWindowDidBecomeKeyNotification 
                                               object: nil];

2)使用你的keyWindowChanged:方法,你可以添加你的覆盖,下面的代码片段就是我实现它的方式:

代码语言:javascript
复制
- (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被“隐藏”的情况下才有效:

代码语言:javascript
复制
[newMPController setMovieControlMode: MPMovieControlModeHidden];

希望我能帮上忙。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3146860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档