6

MPMovieplayercontroller用来播放视频它播放来自网络服务的视频。源视频文件是在肖像模式下拍摄的,但已逆时针旋转 90º。因此,当我在MPMovieplayercontroller中播放它时,它播放的格式如下所示,是示例图像在此处输入图像描述

有没有办法旋转来自网络服务的视频文件?

我试图应用变换,MPMovieplayercontroller.view但电影播放器​​控件也在旋转。我的要求是我只需要旋转视频部分。有什么办法可以做到这一点。请帮我解决这个问题,这将是很大的帮助。

提前致谢

4

3 回答 3

2

试试这个:(我为 MPMoviePlayerViewController 创建了一个子类)

- (void)configureSubViews
{
    if (self.moviePlayer.view.subviews.count > 0)
    {
        UIView *view = self.moviePlayer.view.subviews[0];
        if (view.subviews.count > 0)
        {
            UIView *sView = view.subviews[0];
            self.viewPlayerVideoContent = [sView viewWithTag:1002];
            self.viewPlayerControls     = [sView viewWithTag:1003];
        }
    }
}

我真的不喜欢以这种方式处理子视图,但它可以工作..(至少对于 iOS5 和 iOS6)

然后,您可以尝试旋转 viewPlayersVideoContent :)

于 2013-09-13T15:19:42.027 回答
2

您需要MPMoviePlayer按照以下代码旋转视图。这将最有效。我已经测试过了。

    NSURL *fileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Video" ofType:@"mp4"]];
    MPMoviePlayerViewController *moviePlayerController = [[MPMoviePlayerViewController alloc]initWithContentURL:fileUrl];
    [moviePlayerController.moviePlayer prepareToPlay];
    [moviePlayerController.moviePlayer setRepeatMode:MPMovieRepeatModeOne];
    [moviePlayerController.moviePlayer setControlStyle:MPMovieControlStyleEmbedded];
    moviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI/2);
    [self.view addSubview:moviePlayerController.view];
于 2013-09-16T12:02:45.270 回答
1

您可以通过以下代码实现此目的,

yourMoviePlayerController.view.transform = CGAffineTransformMakeRotation(M_PI/2);

如果你想让你的控件固定在某个地方,默认情况下是不可能的。因此,您需要通过以下代码隐藏默认控件,

yourMoviePlayerController.controlStyle = MPMovieControlModeHidden;

然后以编程方式为控件添加一个子视图。

于 2013-09-17T13:47:36.183 回答