作为标题,当我使用Movieplayer播放电影时,我想知道何时会解散PlayControllerbar,以便我可以控制MoviePlayer中添加的观点。有人知道吗?告诉我,谢谢。

有帮助吗?

解决方案

我不是100%确定我是否正确理解您。我认为您想做的是:

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

假设我刚写下的内容,我认为您必须考虑以下内容:

  1. 在上面添加自定义覆盖 MPMoviePlayerViewController (就我而言)仅在将标准播放器控件设置为无时才允许/可能:

    [moviePlayerViewController.moviePlayer setControlStyle:MPMovieControlStyleNone];
    
  2. 在玩家顶部添加自定义覆盖层基本相同 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];

我希望我能提供帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top