1

アプリ全体は縦向きのみをサポートし、ビデオの再生のみがすべての向きをサポートする必要があります。MPMoviePlayerViewControllerアプリケーションは iOS < 6.0 で完全にポートレート モードで完全に実行されます。iOS 6.0 の (再生するビデオ)の自動回転方向もサポートする必要があるため、多くのことを検索しました。ソリューションをアプリに適用しました

1) plist またはターゲットのすべての方向をサポートします。

2) 縦向きのサポートのために以下の方向機能を追加します

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

- (BOOL)shouldAutorotate
{
    return NO;
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return UIInterfaceOrientationPortrait;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

3) MPMoviePlayerViewController クラスをオーバーライドし、サポートするすべての適切な方向メソッドを追加しました。

4) 以下のメソッドを AppDelegate ファイルに入れ、 のオブジェクトを見つけたら、landscape を返しますMPMoviePlayerViewController

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window { }

しかし、ついに成功はありません!- 横向きモードで動画を再生できません。縦向きのみがアプリ全体でサポートされています。

なぜ回転しないのかわからない?設定が足りないものはありますか?

4

1 に答える 1

0

最近、私が開発したアプリで反対のことをしなければなりませんでした。そこでは、ビデオ再生を強制的に横向きモードでのみ表示する必要がありました。私がしたことは、アプリがすべての向きをサポートできるようにし、代わりに mpMoviePlayerViewsshouldAutorotateToInterfaceOrientationメソッドをオーバーライドして、横向きの場合にのみ YES を返すようにすることでした。

反対のことをしたいので、アプリでポートレイトとランドスケープの両方を許可し、通常のビューをポートレイトのみに制限するのはどうですか? (したがって、mpmovieplayerviewの回転を許可する問題を回避します)通常のビューが継承できる親(ビュー)クラスを作成できるはずだと思います。親クラスではshouldAutorotateToInterfaceOrientation、ポートレイトのサポート/リターンのみにオーバーライドするだけですモード。

于 2013-02-23T13:40:07.630 に答える