我的iPad应用程序使用方便的MPMoviePlayerViewController
课程全屏显示电影。我这样说:
[self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];
之后,当收到通知播放完成后,我将其解雇:
[self.hostController dismissMoviePlayerViewControllerAnimated];
它工作正常,除非用户在播放电影时旋转iPad:
1- iPad处于垂直方向。我的观点是垂直的。 2-用户以垂直方向启动电影。玩家是垂直的。 3-用户将iPad旋转到水平方向。 4-播放器切换到水平方向。到现在为止还挺好。 5-电影停止,播放器被解雇,我重新出现,iPad仍处于水平状态,但我的视图一直处于垂直方向,处于步骤1中。现在它看起来是侧面的。
当然,如果用户然后旋转iPad,它就会恢复正常。然后我的视图在iPad旋转时正常旋转。
有没有人遇到过这种情况?一个简单的解决方法?
感谢。
答案 0 :(得分:2)
我遇到过这么多次,它似乎是一个Apple bug(并且已经报告过它)。
围绕此方式(我发现)的唯一方法是收听UIDeviceOrientationDidChangeNotification
和UIApplicationDidChangeStatusBarOrientationNotification
通知。使用这些通知的相对时间戳;如果它们都在彼此之间发生,则可以确定状态栏更改是用户切换方向的结果,而不是媒体SDK更改状态栏方向。然后,当电影结束时,您可以告诉您的视图控制器它应该旋转到横向。