2012-03-22 1 views
0

rotate an MPMoviePlayerController to landscape is to use an MPMoviePlayerViewControllerには(唯一の)唯一の方法と思われます。MPMoviePlayerViewControllerを使用しないでMPMoviePlayerControllerの向きを設定する

私は現在、残念ながらルートUIViewControllerが設定されていないオープンソースのゲームを変更しています。 MPMoviePlayerControllerを使ってオリエンテーションを設定する方法はありますか、それを吸い上げて、このアプリケーションにルートUIViewControllerをハックする必要がありますか?

編集:Shivan Raptorに対する応答で、ゲームはCanabalt:https://github.com/ericjohnson/canabalt-iosです。

self.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:self.videoTempFilePath]; 
self.moviePlayerController.repeatMode = MPMovieRepeatModeNone; 

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlaybackComplete:) 
              name:MPMoviePlayerDidExitFullscreenNotification 
              object:self.moviePlayerController]; 
[glView addSubview:self.moviePlayerController.view]; 

// MUST SET THIS HERE AFTER WE ADD AS SUBVIEW 
self.moviePlayerController.fullscreen = YES; 

[self.moviePlayerController play]; 

映画は肖像画で再生し、そこにロックされたままになりますが、私は風景の中にそれを再生したいのですが、次のように私はMPMoviePlayerControllerをインスタンス化しています。

+0

ここに関連コードを投稿できますか? – Raptor

答えて

0

ルートUIViewControllerを作成し、MPMoviePlayerViewControllerをその子にしました。これにより、所望の効果が得られた。

0

これは参考になると思います。

- (BOOL) shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { 

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) { 
    [self.view setTransform:CGAffineTransformMakeRotation(M_PI/2)]; 
    return true; 
} 
else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft) { 
    [self.view setTransform:CGAffineTransformMakeRotation(M_PI * 2)]; 
    return true; 
} 
else if (toInterfaceOrientation == UIInterfaceOrientationPortrait) { 
    [self.view setTransform:CGAffineTransformIdentity]; 
    return true; 
} 
else return false; 
} 
関連する問題