Video.js 如何监听视频播放结束事件? Top丶明月 提问于 2026-03-24 21:38:20 阅读 4 交互 我用 Video.js 做了个播放器,想在视频播完后自动跳转页面,但试了几次都没触发结束事件。官方文档说用 ended 事件,但我这么写好像没生效: const player = videojs('my-video'); player.on('ended', () => { console.log('视频结束了!'); window.location.href = '/next-page'; }); 控制台完全没输出,是不是我绑定时机不对?还是得用别的事件名? Video.js 我来解答 赞 1 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 打工人子香 Lv1 前端这块有时候就是坑多。你这代码看起来没啥问题,不过有几个地方可以检查一下。首先确保你的 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 加载更多 相关推荐 2 回答 50 浏览 Dash.js在React中监听缓冲事件不触发怎么办? 我用Dash.js在React里做视频播放,想监听缓冲开始事件来显示加载提示。按照文档写了事件绑定,但控制台一直没输出,是哪里漏了吗? import React, { useRef, useEffec... 圣哲 交互 2026-01-27 18:18:31 2 回答 42 浏览 Dash.js播放HLS视频时,视频封面无法居中显示怎么办? 用Dash.js播放HLS视频时,我给视频加了个封面图,但无论怎么调整CSS都无法让封面在不同分辨率下居中显示。我尝试过绝对定位配合transform,但加载视频时封面会突然跳到左上角。 这是我的CS... Dev · 春景 交互 2026-02-14 19:08:25 2 回答 81 浏览 为什么我的Node.js事件监听在第二次触发时不执行? 我在用Node.js的EventEmitter写一个消息队列处理模块,发现第一次触发事件时能正常执行监听函数,但第二次触发就完全没反应了。 代码大概是这样写的: const EventEmitter ... UP主~艳珂 前端 2026-01-29 21:39:38 1 回答 17 浏览 NW.js 中如何正确监听窗口关闭事件? 我在用 NW.js 做一个桌面应用,想在用户点击窗口右上角的关闭按钮时弹出确认对话框,但试了几次都没生效。我用了 win.on('close', ...),但窗口还是直接关了,根本没触发回调。 我的代... A. 园园 框架 2026-03-08 19:46:22 2 回答 78 浏览 Hammer.js双指缩放时为什么会触发点击事件? 在移动端网页里用Hammer.js给图片绑定了双指缩放和点击事件,但每次缩放结束后总会意外触发点击跳转。试过在缩放事件里用event.stopPropagation()也不行... const mc ... 爱书的笔记 交互 2026-02-18 09:54:46 2 回答 35 浏览 QQ浏览器中video标签的播放按钮显示异常怎么办? 在QQ浏览器里用video标签做视频播放时,系统自带的播放按钮总是显示成灰色不可点击状态,但视频能正常自动播放。其他浏览器都正常,这是为什么啊? 代码就很简单这样写的: <video id=&q... a'ゞ静欣 移动 2026-02-16 03:03:32 1 回答 62 浏览 HLS.js动态切换自适应码率后视频卡住怎么办? 在React项目里用HLS.js实现视频播放,想让前端动态切换不同分辨率的自适应码率。我通过hls.levels获取到可用码率列表,然后在点击事件里调用hls.swapAudioCodec或者hls.... 梦幻 Dev 交互 2026-02-03 20:06:39 1 回答 17 浏览 Hotkeys.js 为什么监听 Ctrl+Enter 不生效? 我用 Hotkeys.js 想监听 Ctrl+Enter 组合键提交表单,但怎么按都没反应,其他快捷键比如 'a' 或 'ctrl+s' 都能正常触发。是不是组合键写法有问题? 我试过写成 'ctrl... Zz晨硕 交互 2026-03-22 23:11:18 2 回答 14 浏览 Dash.js播放HLS流时为什么一直卡在loading状态? 我用 Dash.js 尝试播放一个 HLS 流(其实是 .m3u8 链接),但页面一直显示 loading,控制台也没报错。明明这个链接在 VLC 里能正常播放,是不是我初始化方式有问题? 我试过设置... 慕容永穗 交互 2026-03-02 10:03:18 2 回答 24 浏览 HLS.js 播放时为什么总在切换清晰度后卡住? 我用 HLS.js 做了一个支持多码率切换的播放器,但每次手动切换清晰度(比如从 720p 切到 1080p)之后,视频就会卡住几秒甚至直接黑屏。控制台没报错,network 里看到新的 m3u8 和... 慕容炳光 交互 2026-03-01 21:40:23
其次,确认一下你的视频元素和 ID 设置正确,确保
my-video是正确的 video 标签 ID。最后,你可以尝试在视频初始化后再绑定事件,确保视频实例已经准备好。你可以这样做:
这样就把事件绑定放在了视频实例 ready 之后,应该能正常触发了。还不行的话,可能是其他地方出了问题,比如视频源有问题或者视频被手动暂停等。