如何停止预加载视频(HTML5 - Javascript)

时间:2010-08-02 12:37:09

标签: javascript video html5 preload

我有一个网页,其中有一个视频播放器预装了3个视频(相同视频的低,中,高质量)。然后,当用户点击与所需版本对应的按钮时,视频将打开。

我想做的是停止预录其他两个视频。

这可能吗?换句话说,可以使用一些Javascript动态取消或停止HTML5视频标记的“预加载”属性吗?

3 个答案:

答案 0 :(得分:4)

我想出了一个解决我遇到的类似于你自己的问题的方法。我正在预览我的页面上的电影列表,但是我需要能够跳到其中一个电影并在可能已经预加载之前优先处理它,以便尽快播放它。

我有一个div#prebuffer元素,用于保存预加载的视频,因为它们是缓冲的。当我需要忘记预加载时,我只是这样做:

var $video = $('#prebuffer video:last');
$video.find('source').attr('src', '');
$video[0].load();
// it has now stopped preloading.
// and then, because I don't want this half-loaded broken cruft hanging around:
$video.remove();

它有点难看,但我找不到更好的方法。它完成了工作。

答案 1 :(得分:3)

使用jQuery,您可以尝试:

$('#videoPlayerId').removeAttr('preload');

我不知道它会停止已经预加载的视频。

从UI角度来看,您为什么要同时预加载所有3个视频?这将减慢所有三个的加载速度;如果您只预加载其中一个,则在用户开始查看之前,更多视频将有机会缓冲。

我建议预先加载一个默认质量的视频,并在用户选择时加载不同质量的视频。这是YouTube,Netflix和其他人使用的行为。

答案 2 :(得分:0)

现在有专用标签:

<video preload="none" ....>