动态更改视频标签源时移动 Safari 崩溃
Posted
技术标签:
【中文标题】动态更改视频标签源时移动 Safari 崩溃【英文标题】:Mobile Safari crash when changing video tag source dynamically 【发布时间】:2014-08-13 04:15:00 【问题描述】:我最近一直在尝试解决一个处理动态视频源更改的代码的问题:
vid.src = "some_movie_url";
最终导致移动 Safari 崩溃。
流程有点复杂,所以我不在这里发布(太多异步/事件回调处理)。
实际问题是这样的,我在设备日志中看到抛出以下异常:
“一个 AVPlayerItem 不能与多个 AVPlayer 实例关联”
移动 Safari 中视频标签上的哪些操作可能会导致此类问题?
我看到很多问题涉及到 Objective C 原生应用程序,但不是移动 safari 导致这个问题的地方。
【问题讨论】:
【参考方案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);
【讨论】:
虽然这可能有效,但对我来说不是一个有效的选择,因为我正在处理一个大系统,因此无法缓解这种变化,它增加了额外的引导来处理元素之间的转换。谢谢!以上是关于动态更改视频标签源时移动 Safari 崩溃的主要内容,如果未能解决你的问题,请参考以下文章
在不使用海报的情况下,HTML5 视频标签在移动 Safari 上不显示缩略图