2011-11-28 4 views
1

Мой код работал нормально, пока я не обновил iPhone до iOS 5.0. MPMoviePlayerViewController работал нормально, но он не работает на iOS 5.0, поэтому мне нужно использовать MPMoviePlayerController для iOS 5.0 и более поздних версий. Он отлично работает, но MPMoviePlayerController не вращается автоматически, как это было с MPMoviePlayerViewController.iPhone: MPMoviePlayerController не вращается на iOS 5.0

Следующий мой код. Может ли кто-нибудь предложить мне, как сделать код MPMoviePlayerController автоматически поворотным?

-(void)playVideo { 
NSString *filePath = [appDelegate filePath:@"startup.mp4"]; 

if(!appDelegate.iOS5) { 
    // This works perfectly till iOS 4 versions. Rotates automatically 
    MPMoviePlayerViewController *videoController = [[[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:filePath]] autorelease]; 
    [self presentMoviePlayerViewControllerAnimated:videoController]; 
} else { 
    // This doesn't rotate automatically 
    NSURL *url = [NSURL fileURLWithPath:filePath]; 
    MPMoviePlayerController* moviePlayer = [[[MPMoviePlayerController alloc] initWithContentURL:url] autorelease]; 

    moviePlayer.controlStyle = MPMovieControlStyleDefault; 
    moviePlayer.shouldAutoplay = YES; 
    [self.view addSubview:moviePlayer.view]; 
    [moviePlayer setFullscreen:YES animated:YES]; 
} 
} 

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

ответ

0

Попробуйте подклассифицировать MPMoviePlayerController и заставить ориентацию только на портрет.

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 

     return (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft || toInterfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

Не лучшее решение, но я думаю, он должен работать.

+0

Должно быть что-то еще. Мне интересно, почему он вращает MPMoviePlayerViewController (iOS4.0 и ранее), но не MPMoviePlayerController (iOS5 и более поздние версии)? – applefreak

+0

привет, AppleDevelop, я тоже сталкиваюсь с той же проблемой. В моем случае я поместил свой viewController на контроллер навигации, а DidRotate не вызывается, когда видео находится в полноэкранном режиме, когда метод вызывается в нормальном режиме. Если u решил ур prob plz помочь мне ... – Dinakar

+0

nope buddy. Это не работает! Вы его нашли? – applefreak

Смежные вопросы