以全屏模式添加MPMoviePlayerController?

rot*_*ice 8 iphone objective-c mpmovieplayercontroller ios4

我的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];
Run Code Online (Sandbox Code Playgroud)

我希望电影以全屏模式打开,就像所有电影在iOS 3.2更新之前所做的那样,蓝色的"完成"按钮位于左上角,默认情况下视频以横向模式播放.

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

Til*_*ill 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];
Run Code Online (Sandbox Code Playgroud)

现在假设你基本上不想使用当前的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];
Run Code Online (Sandbox Code Playgroud)

  • 哦等等,我找到了.`[moviePlayer setFullscreen:YES animated:YES];` (3认同)

小智 11

我认为解决它的最好方法是使用MPMoviePlayerViewController而不是MPMoviePlayerController.

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

要以模态方式呈现电影播放器​​视图控制器,通常使用该presentMoviePlayerViewControllerAnimated:方法.此方法是UIViewController类的类别的一部分,由Media Player framework.实现.该presentMoviePlayerViewControllerAnimated:方法呈现电影播放器​​视图控制器,其使用标准过渡动画来呈现视频内容.要关闭模态显示的电影播放器​​视图控制器,请调用该dismissMoviePlayerViewControllerAnimated方法.

  • 是的,使用`MPMoviePlayerViewController`可以最大限度地减少编写大量代码的需要. (2认同)