因此,我尝试了多种方法,结果相同。
我使用 YouTube MP4 URL 进行了测试,例如:
This
我这样做的方式看起来很像:
self.moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:videoUrlString]];
然后我播放视频。如果我播放视频并全屏播放,则整个应用程序都会锁定。视频播放器出现,但部分状态栏(如时间和栏)消失,只留下运营商名称。音量 slider 只有一半,它会无限加载,并忽略任何进一步的触摸输入,直到我终止应用程序。如果我旋转 iPhone,音量 slider 和状态栏的其余部分会重新出现,但它仍然不会响应触摸或完成加载。 Screenshot of issue.
相反,如果我将 MPMoviePlayerViewController 对象传递给带有 presentViewController: 的 UINavigationController,则应用程序似乎挂起:直到我旋转,然后视频突然正确显示并开始播放!然而,同样,所有的触摸输入都被忽略了,应用程序基本上被锁定了。
这是我遇到的最奇怪的问题之一。
所以我尝试使用其他人构建的工具。我使用 Youtube ID 而不是直接链接尝试了 XCDYouTubeKit 和 YKMediaKit,结果完全相同。查看他们的代码后,他们都使用 MPMoviePlayerViewControllers。
这里发生了什么事?谁能帮我找出问题所在?
最佳答案
这很令人惊讶。你试过玩 AV Foundation 吗?这是一个比 MediaPlayer.framework
更现代的媒体 API .
如果您只能针对 iOS 8,那么 AVPlayerViewController
是通过 AVPlayer
播放媒体的简单方法.
关于ios - MPMoviePlayerViewController 以不寻常的外观锁定应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29930052/