2015-04-01 116 views
0

在我的項目中,我設置了方向鎖定,以便它只能在肖像模式下運行。我希望mpMoviePlayer將其旋轉到橫向模式,一旦旋轉到橫向,然後保持橫向模式,直到用戶單擊「完成」按鈕。如何將mpMoviePlayerController方向設置爲鎖定到橫向模式?

現在玩家將旋轉到全屏風景,當我們旋轉回肖像模式時,玩家將全屏旋轉回肖像模式,並且任何進一步的旋轉都不會對玩家產生影響。它將保持全畫面肖像模式。

任何想法??

這是我的要求..:我希望mpMoviePlayer將其旋轉到風景模式,一旦旋轉到風景,然後保持橫向模式,直到用戶單擊「完成」按鈕。

任何建議?在此先感謝..

回答

1

首先把這個在您的ViewController播放視頻:

- (BOOL)shouldAutorotate 
{ 
    return YES; 
} 

然後實現強制所需方向或任何方向,你想方法:

- (void)forceOrientationPortrait 
{ 
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInt:UIInterfaceOrientationPortrait] forKey:@"orientation"]; 
} 

- (void)forceOrientationLandscape 
{ 
    [[UIDevice currentDevice] setValue:[NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft] forKey:@"orientation"]; 
} 

末添加觀察員當MoviePlayer全屏並退出時。觀察員觸發之前提到的方向改變方法:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(forceOrientationLandscape) name:MPMoviePlayerDidEnterFullscreenNotification object:Nil]; 

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(forceOrientationPortrait) name:MPMoviePlayerDidExitFullscreenNotification object:Nil]; 
} 

都放在一起,應該是這樣的:

completecode

我本希望你能實現自己的目標。

- 編輯 -

如果你想強制設備縱向/橫向那麼你可以實現一個Boolean是設置相應的ShouldAutorotate方法後鎖定方向。嘗試是這樣的:當玩家進入景觀mode.After,如果裝置旋轉爲縱向,玩家將被旋轉爲縱向fullscreen.then如果我們將它旋轉到

orientationBoolean

+0

forceOrientationLandscape methodn被調用一次再次景觀,forceOreintation方法不被調用。另外,當我們單擊完成按鈕時,第一次調用forceOrientationPortrait方法。 – abhi1992 2015-04-01 12:02:04

+0

你應該自己編碼;)。請查看編輯後的答案,並在爲用戶強制執行鎖定設備方向後添加說明。如果我的回答很有用,請將其標記爲這樣。 – Michael 2015-04-01 12:55:35

+0

謝謝你的努力邁克爾.. :)。我認爲它會工作。 – abhi1992 2015-04-03 08:02:33

0

我想你必須開啓方向的應用。並在所有viewControllers中使用supportedInterfaceOrientations方法將方向鎖定爲縱向。基於例如創建你自己的mpPlayerVC。 MPMoviePlayerViewController並覆蓋與景觀相同的方法。

相關問題