私のプロジェクトでは、MPMoviePlayerControllerを内部に持つ埋め込みビューを使用しています。MPMoviePlayerControllerはフルスクリーンモードで動作を停止します//縦向き// iOS 7
フルスクリーントグルをタップした後、このムービープレーヤが機能しなくなります。フルスクリーンモードで1秒以上再生した後、停止してインラインモードに戻ります。
これはポートレートモードでのみ発生し、iOS 7でのみ発生します。全画面モードで横向きに切り替えてからデバイスを回転させると問題なく動作します。
私は理由を見つけました - 何とかナビゲーションバーが関係しています。私は初期化時に「NO」のプロジェクトでECSlidingViewControllerを使用して、ナビゲーションバーを半透明に設定します
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:myViewController];
navController.navigationBar.translucent = NO;
self.topViewController = navController;
私はnavController.navigationBar.translucent = YES;
を設定する場合は、ムービープレーヤーが正常に動作します。しかし、私は半透明= NOを持たなければならない。
私は映画プレーヤーのイベントMPMoviePlayerWillEnterFullscreenNotificationとMPMoviePlayerWillExitFullscreenNotificationでプレイしようとしました。 フルスクリーンモードに入る前にnavBarを半透明にするか非表示にすると、ビデオは少し長く再生されますが(3〜4秒程度)、動作は同じです。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(moviePlayerWillEnterFullScreen:)
name:MPMoviePlayerWillEnterFullscreenNotification
object:nil];
-(void)moviePlayerWillEnterFullScreen:(id)sender{
[self.navigationController setNavigationBarHidden:YES animated:NO];
OR
self.navigationController.navigationBar.translucent = YES;
}
私はこれで何ができるのか大変感謝しています。
UPD。 このバグはiOS 7.0.4で消えました
サウンドカテゴリのいくつかの種類(擬似オーバーライド)の策略があったかのようにナビゲーションバーは進行中です。そのような場合は、インターフェイスを実際には上部のUINavigationBarに依存するため、プレーヤーを使用するたびに無効にしてください。そのクラスのカテゴリーと同様に、スウィズルは無効にされていなければ混乱を残す。 – Till
ありがとう@Till私はプロジェクトをチェックしました - カテゴリや他のnavBarのカスタマイズはありません。 –
これには、 'UINavigationBar'の' drawRect: 'コードも含まれていませんよね? – Till