开发者

MPMoviePlayer overlay in fullscreen mode (iPad)

I want to add a button on my video player when it is playing in fullscreen. I c开发者_开发知识库reated an Overlay on my videoplayer and it's working very well on an iPhone. I tryed to same thing on a iPad, but the button never appear.

Here's my code :

 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];
}

It seams like the ipad dosen't create a UIWindow for the fullscreen mode.

Anyone have any idea on how I could do this?

Thanks!


I found a solution to this problem a few weeks ago:

It seems this method does not work on the iPad (I havent checked iPhone SDK 4>) so in order to get round it you can do the following.

After adding your video and setting to fullscreen you can add your controls directly to the UIWindow (e.g. [[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]), they will then appear on top of your video video.

The only problem I have found with this is that they dont obey the orientation rules of the view and I have manually had to program the rotation code in the willRotateToInterfaceOrientation method of the view.


The solution from @tigermain works.

[[[[UIApplication sharedApplication] windows] objectAtIndex:0] addSubView:myView]

But the views added to the window do not follow the orientation.

Solution for the orientation is to use NSNotificationCenter, UIApplicationDidChangeStatusBarOrientationNotification.

    // 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'
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜