【问题标题】:Mobile Safari crash when changing video tag source dynamically动态更改视频标签源时移动 Safari 崩溃
【发布时间】:2014-08-13 04:15:00
【问题描述】:

我最近一直在尝试解决一个处理动态视频源更改的代码的问题:

vid.src = "some_movie_url";

最终导致移动 Safari 崩溃。

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

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

“一个 AVPlayerItem 不能与多个 AVPlayer 实例关联”

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

我看到很多问题涉及到 Objective C 原生应用程序,但不是移动 safari 导致这个问题的地方。

【问题讨论】:

    标签: javascript ios html5-video mobile-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);
    

    【讨论】:

    • 虽然这可能有效,但对我来说不是一个有效的选择,因为我正在处理一个大系统,因此无法缓解这种变化,它增加了额外的引导来处理元素之间的转换。谢谢!
    猜你喜欢
    • 2014-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多