iPhone заставляет ориентацию после воспроизведения видео - PullRequest
0 голосов
/ 15 июля 2011

У меня есть проблема, которая решает мою проблему и должна быть настолько простой, чтобы решить. Вот мой код:

-(IBAction)playMovie:(id)sender{

    NSString *filepath   =   [[NSBundle mainBundle] pathForResource:@"myMovie" ofType:@"MOV"];  
    NSURL    *fileURL    =   [NSURL fileURLWithPath:filepath];  
    moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];  

    [[NSNotificationCenter defaultCenter] addObserver:self  
                                             selector:@selector(moviePlaybackComplete:)  
                                                 name:MPMoviePlayerPlaybackDidFinishNotification  
                                               object:moviePlayerController];  

    [self.view addSubview:moviePlayerController.view];  
    //[moviePlayerController setOrientation:UIInterfaceOrientationLandscapeLeft];
    moviePlayerController.fullscreen = YES;  
    moviePlayerController.scalingMode = MPMovieScalingModeFill;    

    [moviePlayerController play]; 

}

- (void)moviePlaybackComplete:(NSNotification *)notification  
{  

    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];

    moviePlayerController = [notification object];  
    [[NSNotificationCenter defaultCenter] removeObserver:self  
                                                    name:MPMoviePlayerPlaybackDidFinishNotification  
                                                  object:moviePlayerController];  

    [moviePlayerController.view removeFromSuperview];  
    [moviePlayerController release];  
}  

И ориентация:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
    if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) {
        return(YES);
    }

    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
        return([moviePlayerController isFullscreen]);
    }




    return(NO);

}

Сначала это работает как нужно. Ориентация изначально принудительно установлена ​​на портретную, затем воспроизводится фильм, и альбомная ориентация позволяет вращать фильм и просматривать его в альбомной ориентации. Затем после нажатия кнопки «Готово» и завершения фильма, интерфейс остается в альбомной ориентации. Мне нужно, чтобы его вернули в портретный режим ... Я видел решения, такие как

[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];

, который сейчас кажется устаревшим с ios 4.0

В идеале, как только запускается метод «Законченный фильм», он должен автоматически поворачиваться в портретный режим!

какие решения?

1 Ответ

1 голос
/ 18 ноября 2011

Попробуйте это:

[[NSNotificationCenter defaultCenter] addObserver:self  
                                         selector:@selector(moviePlaybackComplete:)  
                                         name:MPMoviePlayerWillExitFullscreenNotification  
                                         object:moviePlayerController];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...