如何知道<video> </video>元素中的视频何时完全加载?

时间:2011-11-06 16:01:23

标签: javascript jquery html5 html5-video

我希望通过jQuery或Javascript检测html5标签内的特定视频是否已完全加载(我的意思是,下载到浏览器的缓存中)。该视频具有preload =&#34; auto&#34;属性。

我尽我所能努力做到这一点(我是初学者)没有运气。似乎无法找到我能听到的任何事件,有没有办法做到这一点?

PS:我遇到的唯一一件事是视频对象的network_state属性,但网络上的引用似乎并不同意它返回的状态,当我尝试它时,我没有&#39;找到&#34; LOADED&#34;。

的状态 编辑:我发现了一个我认为可以使用的事件,即canPlayThrough。我测试了它似乎工作,但我不确定它是否真的告诉我视频已经完全加载,或者只是它加载了足够的数据来开始播放(这是不好的)。

1 个答案:

答案 0 :(得分:4)

您可以绑定到已结束的事件:

$("video").bind(eventname, function() {
   alert("I'm done!");
});

其中eventname是您要列出的事件

完整的活动清单在这里 - &gt; http://dev.w3.org/html5/spec/Overview.html#mediaevents

更新:

要获得加载百分比,您可以使用2个事件的组合:

$("video").bind('durationchange', checkProgress);
$("video").bind('progress', checkProgress);

function updateSeekable() {
  var percentageComplete = (100 / (this.duration || 1) *
    ($(this).seekable && $(this).seekable.length ? $(this).seekable.end : 0)) + '%';
}