2011-03-22 72 views
8

我的iPhone應用程序中有一個UIButton,點擊後播放電影。播放影片的代碼如下所示:在全屏模式下添加MPMoviePlayerController?

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlModeDefault; 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

我希望影片在全屏模式打開,的方式,之前的iOS 3.2更新,其中藍色「完成」的所有電影確實按鈕位於左上角,默認情況下視頻以橫向模式播放。

有誰知道如何做到這一點?謝謝。

回答

17

假設self.view使用整個屏幕:

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
[moviePlayer.view setFrame: self.view.bounds]; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

現在假設你基本上不想使用當前self.view而只是有它在全屏的工作(我稱之爲; fake-全屏,因爲它不會調用全屏屬性);

NSURL *url = [[NSBundle mainBundle] URLForResource:@"Robot" withExtension:@"m4v"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.view.transform = CGAffineTransformConcat(moviePlayer.view.transform, CGAffineTransformMakeRotation(M_PI_2)); 
UIWindow *backgroundWindow = [[UIApplication sharedApplication] keyWindow]; 
[moviePlayer.view setFrame:backgroundWindow.frame]; 
[backgroundWindow addSubview:moviePlayer.view]; 
[moviePlayer play]; 
+0

謝謝!其實,self.view不是全屏。你知道我如何將視頻設置爲全屏嗎? – rottendevice 2011-03-22 20:42:37

+3

哦,等一下,我找到了。 '[moviePlayer setFullscreen:YES animated:YES];' – rottendevice 2011-03-22 20:50:06

+0

哦......再等一等!插入該行可防止視頻在橫向加載。任何想法如何做到這一點? – rottendevice 2011-03-22 21:14:39

11

我認爲解決這個問題是使用MPMoviePlayerViewController,而不是MPMoviePlayerController的最佳途徑。

MPMoviePlayerViewController類實現了一個簡單的視圖控制器來顯示全屏幕電影。與使用MPMoviePlayerController自己的對象立即顯示電影不同,您可以將電影播放器​​視圖控制器合併到任何您通常使用視圖控制器的位置。

要以模態方式呈現電影播放器​​視圖控制器,您通常使用presentMoviePlayerViewControllerAnimated:方法。此方法是UIViewController類中的一個類別的一部分,由Media Player framework實現。方法presentMoviePlayerViewControllerAnimated:呈現使用用於呈現視頻內容的標準過渡動畫的電影播放器​​視圖控制器。要解散模態演示的電影播放器​​視圖控制器,請調用dismissMoviePlayerViewControllerAnimated方法。

+2

是的,使用'MPMoviePlayerViewController'最大限度地減少了編寫大量代碼的需求。 – Raptor 2012-03-13 10:29:17

相關問題