最近在做视屏播放,我用的系统原生的播放器,但是横竖屏切换的时候遇到问题,这里是我的解决办法,记在此处,日后查找也方便。
首先在AppDelegate中如下写:
//appdelegate.h加
@property (nonatomic, assign) BOOL allowRotation;
//appdelegate.m加
-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
if (self.allowRotation) {
return UIInterfaceOrientationMaskPortrait |UIInterfaceOrientationMaskLandscapeLeft |UIInterfaceOrientationMaskLandscapeRight;
}
return UIInterfaceOrientationMaskPortrait;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait |UIInterfaceOrientationMaskLandscapeLeft |UIInterfaceOrientationMaskLandscapeRight;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
其次,跳转方法
- (void)TapMovieTableCellDelegate:(NSString *)urlString
{
NSURL *videoUrl = [NSURL URLWithString:urlString];
XRDCustomerViewController *xrd = [[XRDCustomerViewController alloc] initWithContentURL:videoUrl];
// 缓冲播放
[xrd.moviePlayer prepareToPlay];
// 播放
[xrd.moviePlayer play];
// 跳转方式
[xrd setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
// 弹出播放器
[self presentMoviePlayerViewControllerAnimated:xrd];
}
最后XRDCustomerViewController.h文件:
#import <MediaPlayer/MediaPlayer.h>
@interface XRDCustomerViewController : MPMoviePlayerViewController
@end
XRDCustomerViewController.m文件:
#import "XRDCustomerViewController.h"
@implementation XRDCustomerViewController
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
}
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.allowRotation = YES;
}
- (void)viewWillDisappear:(BOOL)animated{
AppDelegate *delegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
delegate.allowRotation = NO;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// 该类继承于MPMoviePlayerViewController
}
@end
如果仍然没有弄成功,请QQ联系:714700382