在我的应用程序中,我使用MPMoviePlayerViewController播放在线视频。在横向模式下,视频应以全屏模式播放,当旋转到纵向模式时,应忽略全屏模式。 我能够以全屏模式播放视频。但是当设备方向更改为纵向模式时无法将其关闭。
我正在使用[mpController.moviePlayer setFullscreen:FALSE animated:YES];
有人请帮忙。
提前致谢。
答案 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)
设置UIDeviceOrientationDidChangeNotification
或UIApplicationWillChangeStatusBarOrientationNotification
的观察者,检查新的所需方向并为MPMoviePlayerViewController设置新模式。