您的位置:首页 > 产品设计 > 产品经理

MPMoviePlayerViewControllerIOS6下实现横屏播放

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

但是IOS6对横竖屏切换进行了调整,采用了两个新的方法,详细看这篇文章http://blog.csdn.net/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;
}


搞定
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: