在使用 AliyunPlayer Web(阿里云 Web 播放器)时,我们通常可以通过键盘左右方向键实现视频的快进和快退控制。但在一些实际场景中(例如移动设备、触控屏设备、无键盘环境等),这种交互方式并不适用。
因此,一个更友好的方案是:在播放器控制栏中增加“快进 / 快退”按钮,让用户通过点击即可控制播放进度。
本文将带你从 0 到 1 实现一个自定义组件 —— SeekButtonsComponent。
一、准备工作:拉取官方组件库
首先,从阿里云官方组件仓库拉取代码:
https://github.com/aliyunvideo/AliyunPlayer_Web
进入目录:
1 | customComponents |
后续所有操作均在该目录下完成。
二、解决 Windows 构建问题(关键)
官方构建脚本依赖 build_customize.sh(Shell 脚本),在 Windows 环境下无法直接运行。
因此,我们对 build_script.js 做一个简单改造,使其兼容 Windows:
1 | const { execSync } = require('child_process'); |
三、安装依赖并启动开发环境
1 | npm install |
如果一切正常,访问:
1 | http://localhost:9000/ |
看到页面说明环境已搭建成功。
四、创建自定义组件 SeekButtonsComponent
在目录:
1 | src/components |
新建文件夹:
1 | SeekButtonsComponent |
并创建以下 4 个文件:
export.jsindex.jsindex.htmlindex.scss
五、组件代码实现
export.js(组件导出)
1 | import SeekButtonsComponent from './index.js' |
作用说明:
- 挂载组件到全局
window.AliPlayerComponent - 方便播放器初始化时直接引用
index.js(核心逻辑)
1 | import seekButtonsHtml from "./index.html"; |
核心逻辑:
- 获取当前播放时间
- 根据步长(step)计算新时间
- 调用
player.seek()实现跳转
index.html(结构)
1 | <div class="seek-buttons-components"> |
index.scss(样式)
1 | .seek-buttons-components { |
六、创建 Demo 页面验证效果
在 demo 目录新建:
1 | seek-buttons.html |
1 |
|
七、运行并查看效果
1 | npm run dev |
访问:
1 | http://localhost:9000/seek-buttons.html |
此时你会看到播放器控制栏中已经出现:
「快退」和「快进」按钮 🎉