我的iPhone应用程序中有一个UIButton,点击后播放电影。播放电影的代码如下:
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更新之前所做的那样,蓝色的“完成”按钮位于左上角,视频以横向模式播放默认情况下。
有谁知道怎么做?感谢。
答案 0 :(得分: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,而只是让它在全屏工作(我称之为;假全屏,因为它不会调用全屏属性);
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];
答案 1 :(得分:11)
我认为解决问题的最佳方法是使用MPMoviePlayerViewController
而不是MPMoviePlayerController
。
MPMoviePlayerViewController
类实现了一个简单的视图控制器,用于显示全屏电影。与使用MPMoviePlayerController
对象本身立即呈现电影不同,您可以将电影播放器视图控制器合并到通常使用视图控制器的任何位置。
要以模态方式呈现电影播放器视图控制器,通常使用presentMoviePlayerViewControllerAnimated:
方法。此方法是UIViewController类的类别的一部分,由Media Player framework
实现。 presentMoviePlayerViewControllerAnimated:
方法使用标准过渡动画呈现电影播放器视图控制器以呈现视频内容。要关闭模态显示的电影播放器视图控制器,请调用dismissMoviePlayerViewControllerAnimated
方法。