【问题标题】:iPad view in incorrect orientation after dismissMoviePlayerViewControllerAnimated关闭 MoviePlayer ViewController Animated 后 iPad 视图的方向不正确
【发布时间】:2010-09-05 14:18:44
【问题描述】:

我的 iPad 应用程序使用方便的 MPMoviePlayerViewController 类全屏显示电影。我是这样介绍的:

 [self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];

然后,当通知播放完成时,我会这样关闭它:

 [self.hostController dismissMoviePlayerViewControllerAnimated];

它工作正常,除非用户在电影播放期间旋转 iPad:

1- iPad 处于垂直方向。我的观点是垂直的。 2-用户以垂直方向开始电影。播放器是垂直的。 3- 用户将 iPad 旋转到水平方向。 4- 播放器切换到其水平方向。到目前为止,一切都很好。 5- 电影停止,播放器关闭,我重新出现,iPad 仍然是水平的,但我的视图一直保持在第 1 步中的垂直方向。现在它看起来是横向的。

当然,如果用户随后旋转 iPad,它就会恢复正常。然后我的视图会随着 iPad 的旋转而正常旋转。

有人遇到过吗?一个简单的解决方法?

谢谢。

【问题讨论】:

    标签: cocoa-touch mpmovieplayercontroller rotation screen-orientation mpmovieplayer


    【解决方案1】:

    我已经多次遇到这种情况,它似乎是 Apple 的错误(并且已经报告了它)。

    解决此问题的唯一方法(我发现)是收听UIDeviceOrientationDidChangeNotificationUIApplicationDidChangeStatusBarOrientationNotification 通知。在这些通知上使用相对时间戳;如果它们都在一秒钟内发生,您可以确定状态栏的变化是用户切换方向的结果,而不是媒体 SDK 改变状态栏方向的结果。然后,当电影结束时,您可以告诉视图控制器它应该旋转到横向。

    【讨论】:

    • 在您的示例中,您应该注意到您的视图是横向的,但格式化为纵向,并且状态栏实际上处于纵向位置。您需要做的就是调用[[UIApplication sharedApplication] setStatusBarOrientation:trueOrientation](本例中为横向),其余的由您的视图控制器完成。
    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2014-04-14
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-10
    相关资源
    最近更新 更多