1

我有一个应用程序,其旋转配置是动态定义的,因此我无法在项目文件中设置支持的旋转。

因此我必须处理新的 shouldRotate 方法(感谢 Apple !!)

但是尽管已经覆盖了这些并阻止了完整的 UI 以除纵向之外的任何内容显示。当视频视图全屏显示并旋转时。视频将旋转为横向静止。

有没有另一种方法可以专门从旋转中预览视频?

4

1 回答 1

0

这是一个使用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

结果(注意在项目上为所有旋转启用了旋转..):

在此处输入图像描述

于 2013-03-20T14:27:03.117 回答