6

私はMPMovieplayercontrollerビデオを再生するために使用しています。これは、Web サービスからのビデオを再生します。元のビデオ ファイルはポートレート モードで撮影されましたが、反時計回りに 90 度回転しています。したがって、MPMovieplayercontrollerで再生すると、サンプル画像が添付された次の形式のように再生されますここに画像の説明を入力

Web サービスからのビデオ ファイルを回転する方法はありますか?

変換を適用しようとしまし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 に答える