iOS:如何在MPMoviePlayerController中将设备方向更改为横向时全屏视频?

时间:2014-11-07 14:25:40

标签: ios objective-c iphone mpmovieplayercontroller

我正在使用MPMoviePlayerController开发一个应用程序。该应用程序仅支持纵向模式。但是当我将设备方向更改为横向并将设备方向更改为纵向时,我希望在全屏幕中更改视频。

如果在横向和全屏模式下并且电影结束,则也会进入半屏模式。

我尝试了不同的代码和选项,但无法成功。请帮忙。

我的源代码

@property (nonatomic,strong) MPMoviePlayerController* moviePlayer;

-(void)PlayVideoContent
{
    CGFloat x = 0;
    CGFloat y = 70;
    CGRect mpFrame = CGRectMake(x, y, SCREEN_WIDTH, 200);

    NSString * introVideoFileName = @"video_5.mp4";
    NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:introVideoFileName ofType:@""]];

    MPMoviePlayerController *controller = [[MPMoviePlayerController alloc] initWithContentURL:url];
    controller.scalingMode = MPMovieScalingModeAspectFill;

    self.moviePlayer = controller; //Super important
   // controller.view.frame = self.view.bounds; //Set the size
    controller.view.frame = mpFrame; //Set the size
   // [self.moviePlayer setFullscreen:YES animated:YES];

    [self.view addSubview:self.moviePlayer.view]; //Show the view
    [self.moviePlayer play]; //Start playing
}

2 个答案:

答案 0 :(得分:1)

你必须提供申请的UIViewController个,以决定它是landscape还是portrait

之后,将所有其余部分设置为纵向,除了您想要的横向(MPMoviePlayerController

答案 1 :(得分:0)

在项目设置(App Target> General> Deployment Info> Device Orientation)中,选择Portrait,Landscape Left和Landscape Right。

在根视图控制器中,添加:

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

如果所有内容都加载到此视图控制器中,那么您应该完成所有操作。如果您发现某些视图在不应该旋转时,请将相同的代码添加到其视图控制器中。

全屏视频的控制器将使用目标设置中指定的支持方向,因此将允许旋转到横向。关闭视频时,视图将旋转回纵向。