【问题标题】:How do you prevent fullscreen video rotation in iOS 6如何在 iOS 6 中防止全屏视频旋转
【发布时间】:2013-03-09 14:56:50
【问题描述】:

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

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

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

还有其他方法可以专门从旋转中预览视频吗?

【问题讨论】:

  • 您使用的是哪个视频课程?您可以发布有关shouldRotate 方法的代码吗?
  • MPMoviePlayerController - 关于应该旋转的代码,假设我返回 NO,因为在这种情况下总是结果
  • 我没试过这个,但我相信你想要 MPMoviePlayerViewController 代替。 stackoverflow.com/questions/3019200/…
  • 我想我发现我的问题是因为我的视频视图被添加到 Window 而不是 VC,因此它不尊重 VC 的 shouldAutorotate 方法,Window 是否有旋转方法?
  • 逻辑告诉我,如果视图控制器没有被推到某个地方,旋转事件就不会传播给它。查看其他答案,该答案似乎通过使用通知来处理UIViewUIWindow 内的特定旋转问题:stackoverflow.com/questions/2508630/…

标签: ios ios6


【解决方案1】:

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

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

【讨论】:

  • 这是一个合适的答案,它不能解决我的特定问题,但对大多数人来说是一个更好的答案
猜你喜欢
  • 2011-12-28
  • 1970-01-01
  • 2012-03-03
  • 1970-01-01
  • 2012-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多