MPMoviePlayer全屏模式覆盖(iPad)

MPMoviePlayer全屏模式覆盖(iPad),ipad,mpmovieplayercontroller,iphone,Ipad,Mpmovieplayercontroller,Iphone,我想在我的视频播放器全屏播放时添加一个按钮。我在我的视频播放器上创建了一个覆盖层,它在iPhone上运行得非常好。我试着在iPad上做同样的事情,但按钮从未出现过 这是我的密码: NSArray *windows = [[UIApplication sharedApplication] windows]; if ([windows count] > 1){ UIWindow * moviePlayerWindow = [windows objectAtIndex:1];

我想在我的视频播放器全屏播放时添加一个按钮。我在我的视频播放器上创建了一个覆盖层,它在iPhone上运行得非常好。我试着在iPad上做同样的事情,但按钮从未出现过

这是我的密码:

 NSArray *windows = [[UIApplication sharedApplication] windows];
 if ([windows count] > 1){
       UIWindow * moviePlayerWindow = [windows objectAtIndex:1];
       NSArray * subviews = [moviePlayerWindow subviews];
       UIView * videoView = [subviews objectAtIndex:0];
       [videoView addSubview:myButton];
}
它与ipad一样,不会为全屏模式创建UIWindow

有人知道我该怎么做吗


谢谢

几周前,我找到了这个问题的解决方案:

似乎这种方法在iPad上不起作用(我还没有检查过iPhoneSDK 4>),所以为了避免这种情况,您可以执行以下操作

添加视频并设置为全屏后,您可以将控件直接添加到UIWindow(例如:[[[[UIApplication sharedApplication]windows]objectAtIndex:0]addSubView:myView]),然后它们将显示在视频的顶部


我发现的唯一问题是它们不遵守视图的方向规则,我不得不在视图的willRotateToInterfaceOrientation方法中手动编程旋转代码。

来自@tigermain的解决方案有效

[[[UIApplication sharedApplication]windows]对象索引:0]添加子视图:myView]

但是添加到窗口的视图不遵循方向

定向的解决方案是使用NSNotificationCenter,UIApplicationIDChangeStatusBarorientationNotification

    // assign a notification
    id center = [NSNotificationCenter defaultCenter];
    [center addObserver:self
             selector:@selector(didRotate:)
                 name:UIApplicationDidChangeStatusBarOrientationNotification
               object:nil];

    // this method will get called when the orientation changes
    -(void) didRotate:(NSNotification*)notification {

        UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
        NSLog(@"%d", orientation);
        // ... transform view accordingly to the enum 'UIInterfaceOrientationXXX'
    }

你能解释一下你是如何处理定向的吗?很高兴看到一些代码。ThanksI以同样的方式添加了覆盖。你们解决旋转问题了吗?