基于原生 HTML5 video 标签 + TS + CSS 封装通用网页视频播放器,完全替换原生控制器,实现图标化控制、自适应收纳、自定义按钮、XGPlayer 风格居中悬浮图标交互,仅适配常规 MP4 视频。
- 播放/暂停按钮(SVG 切换)
- 可拖拽进度条(已播放进度、缓冲进度、拖拽圆点)
- 时间展示(当前时间 / 总时间,自动适配时分秒)
- 音量控制(音量图标+水平滑块、静音切换)
- 画中画按钮
- 视频下载按钮
- 样式全屏(容器全屏,非系统全屏)
- 系统原生全屏
- 实时监听播放器容器宽度
- 宽度充足:所有按钮横向展示
- 宽度不足:自动将选配按钮、自定义按钮从右至左收纳
- 右侧常驻「三点更多」图标按钮,点击弹出收纳菜单
- 移动端自动收缩为极简模式
- 支持外部传入自定义按钮配置
- 渲染优先级:内置基础按钮 > 内置选配按钮 > 自定义按钮
- 空间不足时,自定义按钮优先被收纳
- 支持自定义图标、点击事件、悬浮提示、永久收纳配置
- 首次加载未播放:居中展示透明轮廓播放图标,点击播放且图标永久消失
- 播放中点击视频空白处:浮现透明轮廓暂停图标,渐变淡出消失
- 暂停中点击视频空白处:浮现透明轮廓播放图标,渐变淡出消失
- 图标为空心轮廓、低透明度、居中悬浮,不遮挡控制器
- 视频播放中,鼠标离开播放器:自动隐藏
- 视频播放中,鼠标不动3秒:自动隐藏
- 视频暂停中:不自动隐藏
- 正在拖拽进度条/音量:不自动隐藏
- 更多菜单显示中:不自动隐藏
- 仅当容器宽度不足以显示所有按钮时才显示MORE按钮
- 拉伸屏幕后,所有按钮展开时自动隐藏MORE按钮
- 更多菜单在所有按钮展开后自动关闭
- 样式全屏按钮:进入全屏显示退出图标(CSS_EXIT_FULLSCREEN),退出全屏显示进入图标(CSS_FULLSCREEN)
- 原生全屏按钮:进入全屏显示退出图标(EXIT_FULLSCREEN),退出全屏显示进入图标(FULLSCREEN)
- 通过 ButtonItem 的 activeIcon 属性实现状态切换
- 所有控制元素纯 SVG 图标,无任何文字
- 控制器静止 3 秒自动隐藏,鼠标移动重新显示
- 下拉菜单点击外部/点击按钮后自动关闭
- 所有功能做浏览器兼容降级(不支持则隐藏/置灰)
- 完整播放控制:播放、暂停、快进、进度拖拽
- 音量调节、静音切换
- 双全屏模式:样式全屏、系统全屏
- 画中画切换
- 视频下载(支持自定义文件名)
- 键盘快捷键支持
- 完整实例生命周期 + 销毁方法(无内存泄漏)
- 事件订阅系统(on/once/off)
- 不支持流媒体、加密视频、倍速、字幕、弹幕
- 不依赖任何第三方播放器、图标库
- 不兼容 IE 以外的老旧浏览器