2

我的iPad應用程序使用方便的MPMoviePlayerViewController類顯示一個電影全屏。我提出這樣的:iPad在錯過方向後在錯誤的方向看MovieMotionPlayerViewControllerAnimated

[self.hostController presentMoviePlayerViewControllerAnimated:playerViewController]; 

後來,當被通知播放完成後,我關閉它是這樣的:

[self.hostController dismissMoviePlayerViewControllerAnimated]; 

它正常工作,當用戶播放電影時旋轉的iPad,除了:

1- iPad處於垂直方向。我的觀點是垂直的。 2-用戶以垂直方向開始播放電影。玩家是垂直的。 3-3用戶將iPad旋轉到水平方向。 4-播放器切換到水平方向。到現在爲止還挺好。 5-電影停止,播放器被解僱,我重新出現,iPad仍然是水平的,但我的視圖停留在垂直方向,是在步驟1中。現在它看起來橫向。

當然,如果用戶轉動iPad,它會恢復正常。隨着iPad旋轉,我的視圖會正常旋轉。

有沒有人遇到過這種情況?一個簡單的修復?

謝謝。

回答

2

我遇到過這麼多次,它似乎是一個蘋果的bug(並已報道)。

圍繞這個的唯一方法(我找到)是聽UIDeviceOrientationDidChangeNotificationUIApplicationDidChangeStatusBarOrientationNotification通知。在這些通知上使用相對時間戳;如果它們都發生在一秒鐘內,則可以確保狀態欄更改是用戶切換方向的結果,而不是媒體SDK更改狀態欄方向的結果。然後,當電影完成後,您可以告訴視圖控制器它應該旋轉爲橫向。

+0

在你的例子中,你應該注意到你的視圖是在lanscape中,但是格式化爲肖像,狀態欄實際上是在肖像位置。所有你需要做的就是調用'[[UIApplication sharedApplication] setStatusBarOrientation:trueOrientation]'(在這個例子中是橫向的),你的視圖控制器應該完成剩下的工作。 – Jason 2010-09-05 16:07:58

+0

很好用。非常感謝。 – 2010-09-05 16:43:26