video.js是否支持fastSeek功能?如何实现该能力?
video.js fastSeek功能使用说明
接口调用报错原因
video.js 播放器实例未对外公开fastSeek顶层方法,因此你直接调用this.video.fastSeek(10)会收到「fastSeek 不是一个函数」的报错,官方文档没有相关说明也是因为该方法不属于公开的 API 范畴。
底层自动调用逻辑
当运行环境支持fastSeek能力时,video.js 会自动调用该能力。其 HTML5 播放内核内部已经做了兼容判断:你调用标准的currentTime(目标时间)方法设置播放进度时,如果当前环境的原生 video 元素支持fastSeek接口,底层会自动优先调用fastSeek实现更高效的进度跳转,不需要你手动触发相关逻辑。
fastSeek开关控制
fastSeek 能力默认处于开启状态,你可以在初始化播放器时通过 HTML5 内核配置项手动控制是否启用:
const player = videojs('my-player', { html5: { enableFastSeek: false // 设为false即可禁用fastSeek,默认值为true } });
手动调用fastSeek的方案
如果有手动调用原生fastSeek的需求,可以先获取播放器底层的原生 video 元素,做兼容性判断后再调用:
// 获取原生video DOM元素 const nativeVideo = this.video.tech().el(); if (nativeVideo.fastSeek) { nativeVideo.fastSeek(10); } else { // 不支持fastSeek时降级使用标准currentTime方法 this.video.currentTime(10); }
正式版本支持情况
你在官方仓库找到的对应单元测试覆盖的逻辑,已经在v7及以上所有video.js稳定正式版中上线,内部自动调用逻辑可正常生效。
内容的提问来源于stack exchange,提问作者danday74
相关产品推荐
相关产品推荐

