2010-08-24 53 views
6

我使用MPMoviePlayerViewController - 與所述播放器控制設定爲:MPMovieControlStyleFullscreenMPMoviePlayerViewController定製

我在與一些按鈕的一個問題,即在MPMovieControlStyleFullscreen:正向,反向,和全屏(具有箭頭指着彼此)。

我想刪除正向,反向和全屏按鈕,或者控制用戶點擊它們時所做的操作。

謝謝!

+0

這個問題,由另一個溢出的用戶,可能會給你一些洞察你想要完成的。希望這會有所幫助。 ?後來。 – GMoP 2010-09-25 12:07:17

回答

0

嘗試設置你的MPMoviePlayerController對象的MPMovieControlStyleMPMovieControlStyleNone

+1

唯一的問題是我需要一種方法讓最終用戶結束視頻,如果他們不想看整個事情。 – stopmotion24 2010-08-24 20:49:38

+0

你好,你能告訴我你怎麼能做到這一點。你製作了自己的控件嗎? – 2014-05-12 03:26:48

9

沒有自定義由蘋果公司提供的MPMovieControlStyle值的方法。您需要做的是關閉Apple控制(MPMovieControlStyleNone),然後創建您自己的自定義控件。蘋果是細跟你把你自己的UIViews到這裏的層次結構,這樣你就可以開始使用這樣的事情:

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL: YOUR_URL]; 
moviePlayer.controlStyle = MPMovieControlStyleNone; 
UIView *movieView = moviePlayer.view; 
[movieView addSubview: _movieControlsView]; 
[movieView bringSubviewToFront: _movieControlsView]; 

_movieControlsView是成立較早的代碼或IB。

美學上,你可以做你想做的,但我會建議堅持看起來像蘋果的選擇,以免混淆用戶。對於剛剛完成的項目,我創建了一個透明的按鈕,以確定電影播放器​​的確切大小。用我的自定義控件點擊底部控制欄中的按鈕。如果其中一個控件沒有被點擊,控制欄會在幾秒鐘後再次消失。

+1

不適合我 - ios 7 – 2013-10-26 07:05:26

+0

@ iTroyd23我認爲斯科特意味着製作一個覆蓋控制視圖來禁用moviePlayer的用戶交互。 – 2014-12-08 06:55:57

3

首先,MPMoviePlayerController與MPMoviePlayer * View * Controller有點不同,所以其中一些答案在轉換iOS 4.3+環境中構建的應用程序時會導致問題。

我已經構建了一些使用MPMoviePlayerController的應用程序,它們在iOS 3.2中生成時可以正常工作。當我用XCode 3.2.6(iOS 4.3)重建它時,視頻甚至不能在iPhone上播放。我因爲固定的,通過添加的MPMoviePlayerController實例子視圖,然後在fullScreenMode呈現模式(Player是一個UIViewController)與movplayer:

//from didSelectRowAtIndexPath 

Vid *selected = [items objectAtIndex:position]; 

player = [[Player alloc] init]; 
movplayer = [[MPMoviePlayerController alloc] initWithContentURL:selected.vidURL]; 
movplayer.view.frame = player.view.bounds; 
movplayer.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | 
UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | 
UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin; 

[player.view addSubview:movplayer.view]; 
[self presentModalViewController:player animated:YES]; 
[movplayer setFullscreen:YES animated:NO]; 
[movplayer play]; 
[player release]; 

//movplayer is released inside - (void)exitedFullscreen:(NSNotification*)notification 

這是在考慮到UINavigationBar的的完成被半停產時旋轉

當我到達iPad版本的應用程序時,模式選項不起作用。在全屏模式下旋轉時,UISplitViewController的navBar和工具欄也被切掉了一半。所以我嘗試實現MPMoviePlayerViewController而不是MPMoviePlayerController。有了這個轉換的XCode試圖設置時,給我的錯誤:

movplayer.controlStyle = MPMovieControlStyleEmbedded; 

的正確方法與MPMoviePlayerViewController要做到這一點:

movplayer.moviePlayer.controlStyle = MPMovieControlStyleEmbedded; 

當玩家添加爲一個子視圖,捏手勢將在fullScreen和parentView(player.view.bounds)的大小之間順暢地切換播放器,並將工具欄和導航條保留爲父級。

//iPad version with a view (viewForMovie) inside the DetailViewController 
movplayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[current vidURL]]; 
movplayer.moviePlayer.controlStyle = MPMovieControlStyleEmbedded; 
movplayer.view.backgroundColor = [UIColor clearColor]; 
movplayer.view.frame = viewForMovie.bounds; 
[viewForMovie addSubview:movplayer.view]; 

因此,這兩個示例爲希望將iPhone或iPad應用程序轉換爲較新的iOS版本的用戶展示了一些解決方法。