如何防止iOS 6中的全屏video旋转

我有一个应用程序的旋转configuration是dynamic定义的,因此我不能在项目文件中设置支持的旋转。

所以我必须处理新的shouldRotate方法(谢谢苹果!!)

但尽pipe覆盖了这些,并阻止完整的用户界面显示在任何东西,但肖像。 全屏显示video视图并旋转时。 video将旋转至静止。

有没有另外一种方法来专门从旋转预览video?

这是一个使用MPMoviePlayerViewController子类的实现,支持纵向和纵向颠倒(但可以轻松更改掩码)。 正如你所build议的这可以在iOS 6中使用 ,以前的版本有不同的旋转select器。

用法:

 NSURL* url = [NSURL URLWithString:@"your_movie"]; MovieViewController* mvc = [[MovieViewController alloc] initWithContentURL:url]; // I did this from the app delegate. // You could push this view controller, present it modally, etc. [self.window setRootViewController:mvc]; 

MovieViewController.h中

 #import <UIKit/UIKit.h> #import <MediaPlayer/MediaPlayer.h> @interface MovieViewController : MPMoviePlayerViewController - (id)initWithContentURL: (NSURL*) url; @end 

MovieViewController.m中

 #import "MovieViewController.h" #import <MediaPlayer/MediaPlayer.h> @interface MovieViewController () @end @implementation MovieViewController - (id)initWithContentURL: (NSURL*) url { self = [super initWithContentURL: url]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } /* ROTATION CODE */ - (BOOL)shouldAutorotate { return YES; } - (NSInteger)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown; } @end 

结果(在所有旋转的项目上都启用了旋转function..):

在这里输入图像说明