解除MPMoviePlayerViewController的全屏模式时出现问题

时间:2011-09-21 14:13:28

标签: iphone ios ipad mpmovieplayercontroller

在我的应用程序中,我使用MPMoviePlayerViewController播放在线视频。在横向模式下,视频应以全屏模式播放,当旋转到纵向模式时,应忽略全屏模式。 我能够以全屏模式播放视频。但是当设备方向更改为纵向模式时无法将其关闭。

我正在使用[mpController.movi​​ePlayer setFullscreen:FALSE animated:YES];

有人请帮忙。

提前致谢。

2 个答案:

答案 0 :(得分:1)

我假设您正在尝试检测呈现MPMoviePlayerViewController的视图控制器中的方向更改?在呈现电影播放器​​视图控制器之后不会触发此代码,因为它不是其父节点将接收旋转事件。

但是,每当检测到旋转为纵向时,您都可以订阅设备旋转通知并关闭电影播放器​​视图控制器:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];
[defaultCenter addObserver:self selector:@selector(deviceOrientationDidChange:) name: UIDeviceOrientationDidChangeNotification object:nil];

// Present MPMoviePlayerViewController here

在同一个视图控制器的其他地方:

- (void)deviceOrientationDidChange:(NSNotification *)notification
{
    UIDevice *currentDevice = [UIDevice currentDevice];
    [currentDevice endGeneratingDeviceOrientationNotifications];

    if (...)        // Check currentDevice.orientation to see if it's what you want
    {
        // Do whatever you want now that you have the orientation you want
    }

    [[NSNotificationCenter defaultCenter] removeObserver:self name:UIDeviceOrientationDidChangeNotification object:nil];
}

答案 1 :(得分:0)

设置UIDeviceOrientationDidChangeNotificationUIApplicationWillChangeStatusBarOrientationNotification的观察者,检查新的所需方向并为MPMoviePlayerViewController设置新模式。