我有一个构建为viewControllers层次结构的应用程序。
在视图中,控制器用于应用的“视频部分”。
该应用程序仅设计为纵向,但是,我想强制视频在横向播放全屏(就像iPhone上的iPod应用程序一样)。
搜索后,我发现很多人都有这个问题。
我终于能够旋转它,但它无法全屏显示,默认为纵向。
由于它无法全屏显示,因此您可以在视频的父视图中看到元素。
是否有一种简单的方法可以全屏旋转此视频,或者是否必须向父视图广播消息以在播放视频时隐藏元素?
这是代码:
NSURL *url = [NSURL URLWithString:[recipeData objectForKey:@"videoPath"]];
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url];
// Register to receive a notification when the movie has finished playing.
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayBackDidFinish:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:moviePlayer];
moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
moviePlayer.scalingMode = MPMovieScalingModeAspectFill;
moviePlayer.shouldAutoplay = YES;
moviePlayer.view.frame = [[UIScreen mainScreen] applicationFrame];
moviePlayer.view.transform = CGAffineTransformMakeRotation(1.57079633);
moviePlayer.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
[self.view addSubview:moviePlayer.view];
//commenting out the line below will rotate the video, leaving it uncommented forces it to play fullscreen in portrait
[moviePlayer setFullscreen:YES animated:NO];
答案 0 :(得分:1)
我将该方法用于在appDelegate中创建视频,并在视频启动时将其定位。这就是诀窍,让它始终高于一切。
答案 1 :(得分:0)
您是否尝试过使用MPMoviePlayerViewController
?它提供了一个全屏几乎模态视图控制器来处理视频播放。我在> = 3.2版本中使用它并使用MPMoviePlayerController
的被黑客攻击版本用于< 3.2
答案 2 :(得分:0)
对于全屏播放,您应该使用MPMoviePlayerViewController然后使其以横向格式启动和播放使用" shouldAutorotateToInterfaceOrientation" MPMoviePlayerViewController类上的方法。
看起来像这样:
[yourInstanceOfMPMoviePlayerViewController shouldAutorotateToInterfaceOrientation: UIInterfaceOrientationLandscapeRight];