动态更改视频标记源时,Mobile Safari会崩溃

时间:2014-06-23 07:30:45

标签: javascript ios html5-video mobile-safari

我最近一直试图解决处理动态视频源的代码变化的问题:

vid.src = "some_movie_url";

最终导致移动游侠崩溃。

流程有点复杂,所以我不在这里发布(太多的异步/事件回调处理)。

实际问题是这个,我在设备日志中看到抛出以下异常:

  

" AVPlayerItem不能与多个AVPlayer实例关联"

视频标签上的移动版Safari中的哪些操作可能会导致此类问题?

我看到许多问题涉及Objective C本机应用程序,但非移动Safari会导致此问题。

1 个答案:

答案 0 :(得分:1)

假设您使用JavaScript简单地使用DOM操作替换视频元素的src属性,也许您可​​以通过完全删除视频节点来解决这个问题,创建一个新的视频节点您想要的src属性,并将其附加到DOM。

这些方面的东西:

var oldVidNode, vidNodeParent, newVidNode, newVidSrc;
oldVidNode = document.querySelector("video");
vidNodeParent = oldVidNode.parentNode;
vidNodeParent.removeChild(oldVidNode);
newVidNode = document.createElement("video"); 
newVidSrc = document.setAttribute("src", "foo.m4v");
vidNodeParent.appendChild(newVidNode);