javascript - 如何从某个时间开始预加载 HTML5 视频

标签 javascript jquery html video

谁能告诉我如何从某个时间开始预加载 HTML5 视频?

例如,我希望我的播放器从 (00:15) 开始预加载。我知道我们可以使用 preload 属性从当前位置开始预加载,但是如果我希望我的播放器从某个时间预加载视频怎么办?

最佳答案

您可以先仅加载元数据,完成后将 currentTime 设置为 00:15,然后将 preload 属性设置为 auto。

为了确保数据开始加载,您可以触发video.play(); video.pause().

var vid = document.querySelector('video');

vid.onloadstart = function() {
  log('loadstart at ' + this.currentTime);
};

vid.onloadedmetadata = function() {
  log('loadedmetadata at ' + this.currentTime);
  vid.currentTime = 15;
  vid.setAttribute('preload', "auto");
  vid.play();
  vid.pause();
};

vid.onloadeddata = function() {
  log('loadeddata at ' + this.currentTime);
};

function log(data) {
  document.querySelector('#log').innerHTML += '<p>' + data + '</p>';
}
#log {
  position: fixed;
  bottom: 0;
  right: 1em;
  color: #FFF;
  background-color: rgba(0, 0, 0, .5)
}
<video controls="true" preload="metadata" height="170">
  <source type="video/ogg" src="http://media.w3.org/2010/05/bunny/movie.ogv">
  <source type="video/mp4" src="http://media.w3.org/2010/05/bunny/movie.mp4">
</video>
<div id="log"></div>

关于javascript - 如何从某个时间开始预加载 HTML5 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29206664/

相关文章:

javascript - 类在 Jquery 中不起作用

jquery - slick.js 隐藏幻灯片直到点击屏幕上的元素

html - 创建不同的 CSS 层

jQuery 突出显示选择并在选择另一个时更改

javascript - 在 $.load 之后绑定(bind) jQuery UI 插件

javascript - 使用数组元素分配 “id=” 值返回 : TypeError: document. getElementById(...) 为 null

PHP 动态变量作为 jQuery 选择器

javascript - 旋转时触发不透明度,jquery

javascript - 使用点击处理程序构建动态菜单

javascript - 创建 JSON 文件以 native 方式响应并加载到数据库中