【问题标题】:iPad rotation bug when using MPMoviePlayerViewController使用 MPMoviePlayerViewController 时出现 iPad 旋转错误
【发布时间】:2011-03-06 14:30:37
【问题描述】:

问题总结

在使用 MPMoviePlayerViewController 播放视频时更改 iPad 设备或模拟器的方向会导致在关闭视频播放器时出现不一致的旋转状态。这是 iPad SDK 3.2 中的一个已知错误,记录在 http://www.openradar.me/8012810

示例项目

我使用 Xcode 3.2.2 中的基于视图的应用程序模板准备了一个最小的示例项目,使用以下代码启动播放器

NSURL *movieUrl = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc] initWithContentURL:movieUrl];
[self presentMoviePlayerViewControllerAnimated:player];
[player release];

代码可在 GitHub 上http://github.com/adamalex/FullScreenMovie 或使用http://github.com/adamalex/FullScreenMovie/zipball/master 直接下载

重现步骤

  1. 使用以上信息获取项目
  2. 使用 iPad 模拟器或设备启动项目
  3. 点击按钮开始播放视频
  4. 将 iPad 旋转 90 度
  5. 关闭视频
  6. 注意 UIStatusBar 与应用程序 UI 不同步

目标

我已联系 Apple,他们已确认这是一个正在调查的错误。我想讨论使用公共 API 安全地提交到 App Store 的临时解决方法。我还将向 Apple 开一个开发者支持案例,并将报告我自己的进度。

【问题讨论】:

    标签: iphone objective-c cocoa-touch ipad


    【解决方案1】:

    Apple 开发者技术支持成功响应!

    这是一个已知的错误,我们收到了许多重复的错误报告,因此 iOS 工程部门意识到了这个问题,我们确实有一个 iOS 工程部门建议的临时解决方法。

    您需要在呈现电影播放器​​的视图控制器中实现这一点。

    - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
       [super didRotateFromInterfaceOrientation:fromInterfaceOrientation];
       [self performSelector:@selector(fixStatusBar) withObject:nil afterDelay:0];
    }
    
    - (void)fixStatusBar {
       [[UIApplication sharedApplication] setStatusBarOrientation:[self interfaceOrientation] animated:NO];
    }
    

    虽然这有点难看,但现在应该可以解决问题。建议在系统中修复错误后删除此代码。

    这完全为我解决了这个问题,您可以重新访问 http://github.com/adamalex/FullScreenMovie 以获取已应用修复程序的代码。

    【讨论】:

      【解决方案2】:

      这也解决了我一直在努力解决的 iPhone/iPodTouch 旋转问题。我正在开发一个通用应用程序,其中每个视图根据设备是纵向还是横向显示不同的图像。按钮用于在视图之间导航。

      如果应用程序在设备上运行并且纵向视图旋转到横向,我的图像切换就会发生。如果随后将设备平放在桌面上并轻按按钮以显示下一个视图,则该视图以横向显示,但改为显示纵向图像。我通过检测面部向上和向下来强制显示纵向视图来解决问题,但 Apple 的代码解决了这个问题(以及我也遇到的类似电影问题)。

      非常感谢您报告错误 - 我以为这只是我的错误编码...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-11-08
        • 1970-01-01
        • 1970-01-01
        • 2014-03-19
        • 1970-01-01
        • 1970-01-01
        • 2011-12-19
        相关资源
        最近更新 更多