如何在MPMovieplayercontroller中将视频旋转90º

时间:2013-09-10 08:09:30

标签: iphone ios objective-c mpmovieplayercontroller

我正在使用MPMovieplayercontroller播放视频,播放来自网络服务的视频。源视频文件采用potrait模式,但逆时针旋转90º。因此,当我在 MPMovieplayercontroller 中播放时,它的播放方式如下所示:示例图像enter image description here

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

我尝试为MPMovieplayercontroller.view应用转换,但电影播放器​​控件也在旋转。我的要求是我只需要旋转视频部分。有没有办法实现这一目标。请帮我解决这个问题,这将是很有帮助的。

提前致谢

3 个答案:

答案 0 :(得分: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];
        }
    }
}

我真的不喜欢以这种方式使用subViews,但它可以工作..(至少对于iOS5和iOS6)

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

答案 1 :(得分: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];

答案 2 :(得分:1)

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

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

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

yourMoviePlayerController.controlStyle = MPMovieControlModeHidden;

然后以编程方式为控件添加一个subView。