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

Posted

技术标签:

【中文标题】iOS:在 MPMoviePlayerController 中将设备方向更改为横向时如何全屏播放视频?【英文标题】:iOS : How to Full screen video when change device orientation to Landscape in MPMoviePlayerController? 【发布时间】:2014-11-07 14:25:39 【问题描述】:

我正在使用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

【问题讨论】:

你的 Info.plist 是否支持横向并尝试 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orientation no ... 应用程序只允许 Portrait .. 因为我需要保留应用程序的其余部分 Portrait 和这个 Movie FullScreen on Landscape。 但是即使我允许横向模式,我的 Movieplayer 也无法全屏显示 【参考方案1】:

你必须提供你的应用程序的UIViewController(s) 来决定它是在landscape 还是portrait

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

【讨论】:

【参考方案2】:

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

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

- (BOOL)shouldAutorotate

    return YES;


- (NSUInteger)supportedInterfaceOrientations

    return UIInterfaceOrientationMaskPortrait;

如果所有内容都加载到此视图控制器中,那应该就是您所要做的。如果您发现某些视图在不应该旋转时发生了旋转,请将相同的代码添加到它们的视图控制器中。

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

【讨论】:

以上是关于iOS:在 MPMoviePlayerController 中将设备方向更改为横向时如何全屏播放视频?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ios 7 和 ios6 中显示启动画面

iOS - NSInternalInconsistencyException 在 iOS 9 和 10 上发生,但在 iOS 11 上运行良好

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

如何在 iOS 4 上运行 iOS 5/ARC 项目

iOS 纵横比约束在 iOS 7 上中断,适用于 iOS 8

iOS 5 MapKit,MKPlacemark,在 iOS 5 上运行 iOS 4.3 应用程序