2011-10-17 57 views
2

我以全屏模式啓動MPMoviePlayerController,然後用默認按鈕關閉它。 ?它的工作原理就像一個的iOS4.3魅力,但葉iOS5.0 :(黑屏MPMoviePlayerController不在iOS5.0上關閉

難道我做錯了什麼,這裏是我的代碼:

展現給玩家:

- (void)showVideo { 

MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:theURL]; 

// Register to receive a notification when the movie has finished playing. 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:moviePlayer];  



moviePlayer.controlStyle = MPMovieControlStyleFullscreen; 
moviePlayer.scalingMode = MPMovieScalingModeAspectFit; 
moviePlayer.shouldAutoplay = YES; 
moviePlayer.view.frame = [[UIScreen mainScreen] applicationFrame]; 
moviePlayer.view.transform = CGAffineTransformMakeRotation(1.57079633);  

[self.view addSubview:moviePlayer.view]; 

[moviePlayer setFullscreen:YES animated:NO]; 
} 

要關閉播放器:

- (void) moviePlayBackDidFinish : (NSNotification *) notification 
{ 
MPMoviePlayerController *moviePlayer = [notification object]; 
[[NSNotificationCenter defaultCenter] removeObserver:self 
               name:MPMoviePlayerPlaybackDidFinishNotification 
               object:moviePlayer]; 

[moviePlayer.view removeFromSuperview]; 

[moviePlayer stop]; 
[moviePlayer release]; 

//otherwise the status bar hides or changes color from time to time 
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO]; 
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault]; 
} 

回答

4

我一直在試圖解決更新到iOS5的後同樣的問題

  • 這是我想出迄今:

這是進入全屏模式後,在的MPMoviePlayerController的錯誤。基本上你不能離開全屏模式。但是,如果我們只是刪除MPMoviePlayerController,應該可以解決這個問題 。但沒有運氣 那裏...

難道這是主視圖不會開始重新繪製後,全屏與視頻播放器? (暫停的下代全屏視圖 重繪應提高視頻播放的性能和 據我所知,這應該是這樣的。)

  • 這裏是一個解決方案:(TKX去我的大學誰了原來的問題)

不要進入全屏模式,只是舒展的MPMoviePlayerController父視圖邊界。這裏的問題 是如果我們旋轉屏幕的全屏模式給出的自動旋轉不被使用。

//instead of going to fullscreen 
//[moviePlayer setFullscreen:YES animated:YES];  
[moviePlayer.view setFrame:self.view.bounds]; 

//when the movie has finished playing release it 
  • 解決旋轉問題:

寫輪換代碼:)

+0

它後面的項目似乎是繪圖(有些項目可以看到片刻,而旋轉) – Daniel

+0

我想這將是最好的解決方案:(我不相信蘋果的SDK通過QA ..他們是否有質量保證部門? – Daniel

+1

如果我找到更好的解決方案,我會添加它。但atm我忙於做無聊的數據庫狗屎。 – SpittingLlama

-2
[moviePlayer stop]; 
[moviePlayer release]; 
[moviePlayer.view removeFromSuperview]; 
+1

沒什麼區別..另外,是不是有點怪將消息發送到您剛剛發佈了一個對象的看法? – Daniel

+0

實際上,這個解決方案可能會導致@dkk建議的錯誤。你可能會發現在某些情況下你會碰到崩潰。 –

+0

實際上,「addSubview」增加了對象的保留計數,因此向控件發送釋放,將其保留計數減1,但在從Superview中移除後釋放。反過來也不會改變任何事情。感謝downvoting,不知道內存管理... – Lefteris

4

變化

player.controlStyle = MPMovieControlStyleFullscreen; 

player.controlStyle = MPMovieControlStyleDefault; 

和MPMoviePlayerDidExitFullscreenNotification

[player setControlStyle:MPMovieControlStyleNone]; 
+0

這個修復了我的問題。我沒有專門設置controlstyle。將其設置爲player.controlStyle = MPMovieControlStyleDefault修復了「無視頻」問題。謝謝 ! – bartvdpoel

+0

我在iOS6上有這個問題,而iOS5工作正常。這種解決方案 - 將控制風格設置爲無 - 爲我解決了這個問題。謝謝! – radiospiel

相關問題