Safari重新加载内存视频

时间:2018-10-10 14:45:42

标签: javascript html html5 video safari

在Chrome中,当使用给定的<video>创建<source>时,视频将加载一次,然后随后创建的带有 same { {1}}使用内置视频(如预期)。

在Safari(12.0)上,即使视频已经在内存中,每次都会重新加载具有相同来源的新视频!

<video>

当上述内容在Chrome vs Safari中运行时,您可以看到第二个视频如何在Chrome上“立即”加载,但在Safari上重新加载并花费一些时间。

当新元素与上一个元素具有相同的来源时,如何使Safari重新使用内存中的视频?我的最终目标是在视频显示之前对其进行预加载(第一个视频为<source>)。

1 个答案:

答案 0 :(得分:1)

由于Apple不允许以任何方式支付数百欧元/美元就无法进行Safari开发,所以我无法检查,但是:

仅传递缓存的视频元素怎么办

vid.oncanplaythrough = () => {
    document.removeChild(vid); // not really necessary
    onFullyLoaded(vid);
};

,然后在您需要的页面其他任何地方使用该元素。

唯一的选择是从第一个元素为第二个元素创建一个内存流(因为它已完全加载,甚至可能没有必要创建流),但是这可能会使内存需求加倍,这是不希望的