ローテーション構成が動的に定義されているアプリがあるため、サポートされているローテーションをプロジェクト ファイルで設定できません。
したがって、新しい shouldRotate メソッドを処理する必要があります (Apple に感謝!!)
しかし、これらをオーバーライドし、完全な UI が縦向き以外で表示されないようにしたにもかかわらずです。ビデオ ビューが全画面表示され、回転している場合。ビデオは横向き静止画に回転します。
特に回転からビデオをプレビューする別の方法はありますか?
MPMoviePlayerViewController
これは、ポートレートと逆さまのポートレートをサポートするサブクラスを使用した実装です (ただし、マスクは簡単に変更できます)。あなたが提案したように、これはiOS 6で機能します。以前のバージョンには異なる回転セレクターがあります。
使用法:
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
結果 (ノートの回転は、すべての回転に対してプロジェクトで有効になっています..):