Video.js 如何监听视频播放结束事件?

Top丶明月 阅读 4

我用 Video.js 做了个播放器,想在视频播完后自动跳转页面,但试了几次都没触发结束事件。官方文档说用 ended 事件,但我这么写好像没生效:

const player = videojs('my-video');
player.on('ended', () => {
  console.log('视频结束了!');
  window.location.href = '/next-page';
});

控制台完全没输出,是不是我绑定时机不对?还是得用别的事件名?

我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
打工人子香
前端这块有时候就是坑多。你这代码看起来没啥问题,不过有几个地方可以检查一下。首先确保你的 Video.js 库加载正确了,有时候是因为库加载顺序或者路径不对导致的。

其次,确认一下你的视频元素和 ID 设置正确,确保 my-video 是正确的 video 标签 ID。

最后,你可以尝试在视频初始化后再绑定事件,确保视频实例已经准备好。你可以这样做:

var player = videojs('my-video');
player.ready(function() {
this.on('ended', function() {
console.log('视频结束了!');
window.location.href = '/next-page';
});
});


这样就把事件绑定放在了视频实例 ready 之后,应该能正常触发了。还不行的话,可能是其他地方出了问题,比如视频源有问题或者视频被手动暂停等。
点赞
2026-03-24 22:01