IOS 6 MPMoviePlayerController 旋转问题

Posted

技术标签:

【中文标题】IOS 6 MPMoviePlayerController 旋转问题【英文标题】:IOS 6 MPMoviePlayerController Rotation Issue 【发布时间】:2013-01-15 23:29:13 【问题描述】:

我刚刚更新到 ios 6,现在当我运行我的应用程序时,MPMoviePlayerControler 无法正确显示视频。该应用程序是横向的,但是当视频以纵向显示时。我创建了新的 .h 和 .m 文件,它们是 MPMoviePlayerController 的子文件。这是我的两个文件

.h

#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import <MediaPlayer/MediaPlayer.h>

@interface TrashPackPlayer : MPMoviePlayerController

@end

.m

#import "TrashPackPlayer.h"

@implementation TrashPackPlayer

-(id)init
    [super init];
    return self;


- (BOOL)shouldAutorotate

    return YES;


- (NSInteger)supportedInterfaceOrientations

    return UIInterfaceOrientationMaskLandscape;


- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation

    return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);


@end

我这样创建媒体播放器:

player = [[TrashPackPlayer alloc] initWithContentURL:videoURL];
    player.view.frame = CGRectMake(0, 0, sharedInfo.screenSize.width, sharedInfo.screenSize.height);
    player.controlStyle = MPMovieControlStyleFullscreen;
    player.scalingMode = MPMovieScalingModeAspectFit;
    [player play];

    [[[CCDirector sharedDirector] openGLView] addSubview:player.view];

这对吗?

我需要做什么才能正确显示?

【问题讨论】:

【参考方案1】:

iOS6 中的旋转发生了巨大变化,请查看第四点: http://megawertz.com/blog/2012/9/20/ios-6-and-rotation

最顶层的视图控制器负责设置允许的方向,子类化视图控制器并不能解决您的问题。

【讨论】:

以上是关于IOS 6 MPMoviePlayerController 旋转问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 5 中支持 iOS 5 和 iOS 6

在 iOS 6.0 和 iOS 6.0.1 上调用 [FBSession openActiveSessionWithPermissions...] 时从 ACAccountStore 抛出 NSInv

Xcode 6 自适应 UI 如何向后兼容 iOS 7 和 iOS 6?

iOS 7 到 iOS 6 支持 [关闭]

iOS8 扩展 - 在 iOS 5/6/7 上会发生啥?

为啥我的弹出框在 iPhone 6 Plus 上的 iOS 8.1 中崩溃? iOS 8 工作(实际上是 Xcode 6.0 到 6.1 的错误)