如何防止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..):