MPMoviePlayerViewController 和 UIWebView HTML5 视频

Posted

技术标签:

【中文标题】MPMoviePlayerViewController 和 UIWebView HTML5 视频【英文标题】:MPMoviePlayerViewController and UIWebView HTML5 video 【发布时间】:2014-03-06 16:51:20 【问题描述】:

我在 ios 项目中遇到了一些问题,其中我有一个 MPMoviePlayerViewController 正在播放本地 .mov 文件,还有一个 UIWebView 正在播放另一个本地视频文件。

似乎每当我单击UIWebView 中的视频开始按钮时,MPMoviePlayerViewController 都会停止播放。我得到了MPMovieFinishReasonPlaybackEndedNSNotification,就像电影播放器​​一直播放到最后一样。

据我了解,在UIWebView 中不再可以自动播放视频,但如果我将 autoplay="auto play" 添加到 html 文件中,我会发生同样的事情。顺便说一句,如果我解决了其他问题,这是否可以自动播放视频?似乎它会发生与我在未启用自动播放的情况下单击视频时相同的情况。

当 UIWebView 添加到它与MPMoviePlayerViewController 共享的父视图以及添加为MPMoviePlayerViewController 的子视图时,都会发生这种情况。我的目标是让UIWebView HTML5 视频作为MPMoviePlayerViewController 视频的叠加层播放。

以 iOS7 为目标,使用 Xcode 5.02。

任何想法将不胜感激!

谢谢!

【问题讨论】:

【参考方案1】:

我猜你将不得不使用AVPlayer 并创建你自己的视图控制器来实现这一点。来自MPMoviePlayerController's 文档:

注意:虽然您可以创建多个MPMoviePlayerController 对象 并在您的界面中展示他们的观点,每次只有一个电影播放器 时间可以播放它的电影。

我认为这就是您的视频被终止的原因。 MPMoviePlayerController 基本上在其他视频会话即将开始时停止播放。解决方案是使用AVPlayer 创建一个自定义播放器视图控制器。 Here 是如何实现这一点的。

【讨论】:

虽然只有一个 MPMoviePlayerViewController。没有吗?第二个视频是在 UIWebView 中播放的 HTML5 视频。这不是我理解的 MPMoviePlayerController。我对此有误吗? 我想 MPMoviePlayerController 只能在其他视频会话未启动时播放视频。这就是我对这种行为的解释。不过文档中没有写。

以上是关于MPMoviePlayerViewController 和 UIWebView HTML5 视频的主要内容,如果未能解决你的问题,请参考以下文章