5

detailView(UIVIew) で MPMoviePlayerController を作成します。ユーザーが FullScreen ボタンをクリックしたときに、MPMoviePlayerController を強制的に横向きに表示したいと考えています。それをしてもいいですか?何か提案をください。前もって感謝します。そして、これは作成する私のコードです:

   NSURL *movieURL = [NSURL URLWithString:previewString];
    movieController = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    [movieController.view setFrame:CGRectMake(10,130, 275 , 150)];
    movieController.view.backgroundColor = [UIColor grayColor];
    [detailview addSubview:movieController.view];
    [movieController prepareToPlay];
    movieController.shouldAutoplay = NO;

そして willEnterFullscreen () 関数:

    - (void)willEnterFullscreen:(NSNotification*)notification {
    NSLog(@"willEnterFullscreen");
    donepress = YES;
    // nothing
}

検索してみましたが、まだ良い答えがありません。私を助けてください。本当にありがとう

4

1 に答える 1

12

はい、2 つの通知オブザーバーを使用して完全な向きを変更できます。

まず、AppDelegate didFinishLaunchingWithOptions メソッドに 2 つの通知オブザーバーを追加します。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillEnterFullscreenNotification:) name:MPMoviePlayerWillEnterFullscreenNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerWillExitFullscreenNotification:) name:MPMoviePlayerWillExitFullscreenNotification object:nil];

次に、メソッドとプロパティを追加します

- (void) moviePlayerWillEnterFullscreenNotification:(NSNotification*)notification {
    self.allowRotation = YES;
}
- (void) moviePlayerWillExitFullscreenNotification:(NSNotification*)notification {
    self.allowRotation = NO;
}

3 番目に、supportedInterfaceOrientationsForWindow メソッドをオーバーライドします。必要な方向を返すことができます。

-(NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
    if (self.allowRotation) {
        return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;
    }
    return UIInterfaceOrientationMaskPortrait;
}
于 2013-10-15T03:31:19.153 に答える