你能告诉我如何加载一定数量的HTML5视频吗?例如,如果我有一个10秒的视频,我希望它只在加载至少5秒时启动。我怎样才能确定发生的时间?
修改:我们假设视频正在加载,而且它位于.pause()
位置.stop()
答案 0 :(得分:3)
您可以阅读视频元素的buffered
属性,以查看已加载的时间范围。 buffered
属性是已加载的时间范围的集合;您可以使用n
和buffered.start(n)
阅读buffered.end(n)
th 范围的开头和结尾。由于您对第一个范围的结束时间感兴趣,因此您可以使用videoElm
读取某些视频videoElm.buffered.end(0)
上加载的秒数。
<video>
元素触发progress
个事件,表明它已加载了一大块新数据(因此buffered
中某个时间范围的结束时间正在增加)。< / p>
您可以在每次progress
事件后检查加载的缓冲区是否足够大:
var someVideo = document.getElementById("myVideoId");
someVideo.addEventListener("progress", function playOnLoad(e) {
var theVideo = e.target;
if(theVideo.buffered.length > 0 && // if we have a buffer
theVideo.buffered.end(0) >= 5) { // if first buffer is at least 5 secs
theVideo.play();
theVideo.removeEventListener(playOnLoad);
}
});
如果您确实对视频是否可以安全播放而不中断感兴趣,则浏览器会使用canplaythrough
事件。当浏览器预测视频的加载速率允许它不间断地播放时,浏览器将触发此事件(但如果加载速率突然改变,有时可能会出错)。
答案 1 :(得分:0)