【问题标题】:MPMoviePlayerViewController locks up application with unusual appearance?MPMoviePlayerViewController 以不寻常的外观锁定应用程序?
【发布时间】:2026-02-07 23:30:02
【问题描述】:

所以,我尝试了多种方法,结果相同。

我使用 YouTube MP4 网址进行了测试,例如: This

我的做法看起来很像:

self.moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:videoUrlString]];

然后我播放视频。如果我播放视频并全屏播放,则整个应用程序都会锁定。视频播放器出现,但部分状态栏(如时间和栏)消失,只留下运营商名称。音量滑块只有一半,它会无限加载,并忽略任何进一步的触摸输入,直到我终止应用程序。如果我旋转 iPhone,音量滑块和状态栏的其余部分会重新出现,但它仍然不会响应触摸或完成加载。 Screenshot of issue.

如果相反,我将 MPMoviePlayerViewController 对象传递给带有 presentViewController: 的 UINavigationController,则应用程序似乎挂起:直到我旋转,然后视频突然正确显示并开始播放!然而,同样,所有的触摸输入都被忽略了,应用程序基本上被锁定了。

这是我解决过的最奇怪的问题之一。

所以我尝试使用其他人构建的工具。我使用 Youtube ID 而不是直接链接尝试了 XCDYouTubeKit 和 YKMediaKit,结果完全相同。查看了他们的代码后,他们都使用了 MPMoviePlayerViewControllers。

这里发生了什么?谁能帮我找出问题所在?

【问题讨论】:

    标签: ios iphone video youtube


    【解决方案1】:

    这太令人惊讶了。你试过玩 AV Foundation 吗?这是一个比 MediaPlayer.framework 更现代的媒体 API。

    如果您只能针对 iOS 8,那么AVPlayerViewController 是一种通过AVPlayer 播放媒体的简单方法。

    【讨论】:

    • 我能够让它与 AVPlayerViewController 一起工作。奇怪的问题,但谢谢!
    最近更新 更多