MPMoviePlayerViewControllerIOS6下实现横屏播放

今天遇到一个MPMoviePlayerController无法横屏的问题,之前好像遇到过这个问题,但是好久不弄忘记了,那时候也是在IOS5.X下面做的 如果是IOS5.X不考虑IOS6的情况下,可以用这个方法http://blog.youkuaiyun.com/mideveloper/article/details/9031081

但是IOS6对横竖屏切换进行了调整,采用了两个新的方法,详细看这篇文章http://blog.youkuaiyun.com/starryheavens/article/details/8396045

顺便摘录之

发现 b2c交易在ios6上webview随屏幕旋转了,但是b2c支持横屏的,原因是ios6的委托

iOS6下的

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
       return UIInterfaceOrientationIsLandscape(toInterfaceOrientation);
}

这个不会再被调用,取而代之的是这俩个组合:
- (BOOL)shouldAutorotate
{
   return YES;
}
 
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

当然,为了保持对旧版本系统行为的兼容性,不要删掉不用的那个调用。另外还有一个这个preferred朝向也可以加上
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationLandscapeRight;

}


b2c交易只支持横屏,网银交易需要支持横竖屏,所以如果在info.plist设置支持的方向,则再同以客户端下两种应用有冲突。解决这个问题的方法就是再前面的基础上再应用的delegate中加入如下回调:
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (clientstate == 0)  /* 网银*/
        return UIInterfaceOrientationMaskAll;
    else/* b2c*/
        return UIInterfaceOrientationMaskLandscape;
}

简单说明:

UIInterfaceOrientationMaskLandscape  支持左右横屏
UIInterfaceOrientationMaskAll  支持四个方向旋转
UIInterfaceOrientationMaskAllButUpsideDown 支持除了UpsideDown以外的旋转


所以如果是IOS6的话,可以这样实现,创建一个类,继承自MPMoviePlayerViewController

VideoPlayerViewController.h

#import <MediaPlayer/MediaPlayer.h>

@interface VideoPlayerViewController : MPMoviePlayerViewController

@end

VideoPlayerViewController.m
#import "VideoPlayerViewController.h"

@implementation VideoPlayerViewController

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return UIDeviceOrientationIsLandscape(interfaceOrientation);
}

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    
    return UIInterfaceOrientationMaskAllButUpsideDown;
}
@end

然后在AppDelegate.m中添加如下代码

//为了MPMoviePlayerViewController保持横平
- (NSUInteger)application:(UIApplication*)application supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
    return UIInterfaceOrientationMaskAllButUpsideDown;
}

搞定 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值