【发布时间】:2012-03-28 13:48:00
【问题描述】:
我有一个要求,其中包含视频的界面仅是纵向的,但是当用户旋转到横向时,视频会进入全屏并开始播放,然后当视频到达结尾或用户点击完成时,视频退出全屏,界面仍然是纵向的。我尝试使用 shouldAutorotateToInterfaceOrientation: 方法来启动视频。但我无法让屏幕再次旋转回来。我决定改用 shouldAutorotateToInterfaceOrientation: 并创建我自己的视图控制器来仅处理视频并使用 -[UIView setTransform:] 来旋转视频,但只有在我禁用全屏时旋转才有效这是我的代码的一部分
- (void)deviceOrientationDidChangeNotification:(NSNotification *)aNotification
{
switch ([[UIDevice currentDevice] orientation])
{
case UIDeviceOrientationPortrait:
case UIDeviceOrientationPortraitUpsideDown:
[self setFullscreen:NO animated:YES];
break;
case UIDeviceOrientationLandscapeLeft:
case UIDeviceOrientationLandscapeRight:
[self.moviePlayerController play];
[self setFullscreen:YES animated:YES];
break;
default:
break;
}
}
- (void)setFullscreen:(BOOL)aFullScreen animated:(BOOL)anAnimated
{
if( aFullScreen )
{
switch ([[UIDevice currentDevice] orientation])
{
case UIDeviceOrientationLandscapeLeft:
case UIDeviceOrientationPortraitUpsideDown:
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIDeviceOrientationPortrait:
case UIDeviceOrientationLandscapeRight:
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI+M_PI_2);
break;
default:
break;
}
}
else
self.moviePlayerController.view.transform = CGAffineTransformMakeRotation(0);
[self.moviePlayerController setFullscreen:aFullScreen animated:anAnimated]; // comment this out and rotation works
}
任何人都可以提供任何建议,我现在认为我应该实现自己的全屏转换以使其正常工作,但我想我会先得到一些反馈。
【问题讨论】:
标签: iphone ios cocoa video mpmovieplayercontroller