2012-03-22 55 views
0

這似乎是最好的(只有?)方式rotate an MPMoviePlayerController to landscape is to use an MPMoviePlayerViewController設置MPMoviePlayerController方向沒有MPMoviePlayerViewController

我目前正在修改一個開源遊戲,不幸的是,它沒有root UIViewController集。有沒有什麼方法只用MPMoviePlayerController來設置方向,還是我必須把它吸起來,並將根UIViewController插入到這個應用程序中?

編輯:爲了迴應Shivan Raptor,遊戲是Canabalt:https://github.com/ericjohnson/canabalt-ios。我實例化的MPMoviePlayerController如下:

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]; 

在這部影片中扮演的肖像和保持鎖定狀態,但我想在景觀進行播放。

+0

你能在這裏發佈相關的代碼嗎? – Raptor 2012-03-22 04:29:19

回答

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; 
} 
相關問題