2011-03-22 45 views
8

我的iPhone应用程序中有一个UIButton,点击后播放电影。播放影片的代码如下所示:在全屏模式下添加MPMoviePlayerController?

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlModeDefault; 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

我希望影片在全屏模式打开,的方式,之前的iOS 3.2更新,其中蓝色“完成”的所有电影确实按钮位于左上角,默认情况下视频以横向模式播放。

有谁知道如何做到这一点?谢谢。

回答

17

假设self.view使用整个屏幕:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

现在假设你基本上不想使用当前self.view而只是有它在全屏的工作(我称之为; fake-全屏,因为它不会调用全屏属性);

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
[moviePlayer.view setFrame:backgroundWindow.frame]; 
[backgroundWindow addSubview:moviePlayer.view]; 
[moviePlayer play]; 
+0

谢谢!其实,self.view不是全屏。你知道我如何将视频设置为全屏吗? – rottendevice 2011-03-22 20:42:37

+3

哦,等一下,我找到了。 '[moviePlayer setFullscreen:YES animated:YES];' – rottendevice 2011-03-22 20:50:06

+0

哦......再等一等!插入该行可防止视频在横向加载。任何想法如何做到这一点? – rottendevice 2011-03-22 21:14:39

11

我认为解决这个问题是使用MPMoviePlayerViewController,而不是MPMoviePlayerController的最佳途径。

MPMoviePlayerViewController类实现了一个简单的视图控制器来显示全屏幕电影。与使用MPMoviePlayerController自己的对象立即显示电影不同,您可以将电影播放器​​视图控制器合并到任何您通常使用视图控制器的位置。

要以模态方式呈现电影播放器​​视图控制器,您通常使用presentMoviePlayerViewControllerAnimated:方法。此方法是UIViewController类中的一个类别的一部分,由Media Player framework实现。方法presentMoviePlayerViewControllerAnimated:呈现使用用于呈现视频内容的标准过渡动画的电影播放器​​视图控制器。要解散模态演示的电影播放器​​视图控制器,请调用dismissMoviePlayerViewControllerAnimated方法。

+2

是的,使用'MPMoviePlayerViewController'最大限度地减少了编写大量代码的需求。 – Raptor 2012-03-13 10:29:17

相关问题