MPMoviePlayerController не закрывается на iOS5.0 - PullRequest
2 голосов
/ 17 октября 2011

Я запускаю MPMoviePlayerController в полноэкранном режиме, а затем закрываю его кнопками по умолчанию. На iOS4.3 он работает как шарм, но на iOS5.0 оставляет черный экран :(

Я что-то не так делаю? вот мой код:

Показать игрока:

- (void)showVideo {

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:theURL];  

// Register to receive a notification when the movie has finished playing.  
[[NSNotificationCenter defaultCenter] addObserver:self  
                                         selector:@selector(moviePlayBackDidFinish:)  
                                             name:MPMoviePlayerPlaybackDidFinishNotification  
                                           object:moviePlayer];      



moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
moviePlayer.scalingMode = MPMovieScalingModeAspectFit;
moviePlayer.shouldAutoplay = YES;  
moviePlayer.view.frame = [[UIScreen mainScreen] applicationFrame];
moviePlayer.view.transform = CGAffineTransformMakeRotation(1.57079633);    

[self.view addSubview:moviePlayer.view];  

[moviePlayer setFullscreen:YES animated:NO];  
}

Чтобы закрыть плеер:

- (void) moviePlayBackDidFinish : (NSNotification *) notification
{
MPMoviePlayerController *moviePlayer = [notification object];  
[[NSNotificationCenter defaultCenter] removeObserver:self  
                                                name:MPMoviePlayerPlaybackDidFinishNotification  
                                              object:moviePlayer];  

[moviePlayer.view removeFromSuperview];

[moviePlayer stop];
[moviePlayer release];  

//otherwise the status bar hides or changes color from time to time 
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
}

Ответы [ 3 ]

4 голосов
/ 18 октября 2011

Я пытался решить ту же проблему после обновления до iOS5.

  • это то, что я придумала до сих пор:

Это ошибка в MPMoviePlayerController после перехода в полноэкранный режим. Вы не можете выйти из полноэкранного режима. Но это должно будет решена, если мы просто удалим MPMoviePlayerController. Но не повезло есть ...

Может ли быть так, что основной экран не начинает перерисовываться после перехода в полноэкранный режим с видеоплеером? (Приостановка перерисовки просмотров под полноэкранным режимом должно улучшиться производительность воспроизведения видео. А также насколько я знаю, так и должно быть.)

  • Вот решение: (tkx иди в мой колледж, у которого была первоначальная проблема)

Не переходите в полноэкранный режим и просто растягивайте MPMoviePlayerController до границ родительских представлений. Проблема здесь является то, что если мы поворачиваем наш экран, автоматическое вращение, что полноэкранный режим дал не привыкать.

//instead of going to fullscreen
//[moviePlayer setFullscreen:YES animated:YES];    
[moviePlayer.view setFrame:self.view.bounds];

//when the movie has finished playing release it
  • Решение проблемы вращения:

Написать код вращения:)

4 голосов
/ 26 декабря 2011

изменить

player.controlStyle = MPMovieControlStyleFullscreen; 

на

player.controlStyle = MPMovieControlStyleDefault; 

и в MPMoviePlayerDidExitFullscreenNotification

 [player setControlStyle:MPMovieControlStyleNone];
0 голосов
/ 17 октября 2011
[moviePlayer stop];
[moviePlayer release];
[moviePlayer.view removeFromSuperview]; 
...