|
2 | 2 | * @Author: web.王晓冬
|
3 | 3 | * @Date: 2021-08-19 18:56:59
|
4 | 4 | * @LastEditors: web.王晓冬
|
5 |
| - * @LastEditTime: 2021-09-14 09:25:41 |
| 5 | + * @LastEditTime: 2021-09-14 10:59:48 |
6 | 6 | * @Description: file content
|
7 | 7 | -->
|
8 | 8 | [](https://www.npmjs.com/package/vue3-video-play)
|
@@ -90,263 +90,29 @@ export default {
|
90 | 90 |
|
91 | 91 | ## 基本示例
|
92 | 92 | 提供了丰富了配置功能
|
93 |
| -:::demo 自定义配置 比如自定义poster。 |
94 |
| - |
95 |
| -```vue |
96 |
| -<template> |
97 |
| - <div> |
98 |
| - <vue3VideoPlay v-bind="options" poster='https://go.dreamwq.com/videos/ironMan.jpg'/> |
99 |
| - </div> |
100 |
| -</template> |
101 |
| - |
102 |
| -<script setup lang="ts"> |
103 |
| -import { reactive } from 'vue'; |
104 |
| -const options = reactive({ |
105 |
| - width: '800px', //播放器高度 |
106 |
| - height: '450px', //播放器高度 |
107 |
| - color: "#409eff", //主题色 |
108 |
| - title: '', //视频名称 |
109 |
| - src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 |
110 |
| - muted: false, //静音 |
111 |
| - webFullScreen: false, |
112 |
| - speedRate: ["0.75", "1.0", "1.25", "1.5", "2.0"], //播放倍速 |
113 |
| - autoPlay: false, //自动播放 |
114 |
| - loop: false, //循环播放 |
115 |
| - mirror: false, //镜像画面 |
116 |
| - ligthOff: false, //关灯模式 |
117 |
| - volume: 0.3, //默认音量大小 |
118 |
| - control: true, //是否显示控制 |
119 |
| - controlBtns:['audioTrack', 'quality', 'speedRate', 'volume', 'setting', 'pip', 'pageFullScreen', 'fullScreen'] //显示所有按钮, |
120 |
| -}) |
121 |
| -</script> |
122 |
| - |
123 |
| -<style scoped> |
124 |
| -</style> |
125 |
| -``` |
126 |
| - |
127 |
| -::: |
128 |
| - |
129 |
| -可以通过`props`的`speed`开启或关闭进度条功能, 并且通过 `currentTime`属性控制从60秒开始播放 |
130 |
| - |
131 |
| -:::demo 通过`speed`关闭进度条拖动功能。 并且通过 `currentTime`属性控制从60秒开始播放 |
132 |
| - |
133 |
| -```vue |
134 |
| -<template> |
135 |
| - <div> |
136 |
| - <vue3VideoPlay v-bind="options" poster='https://go.dreamwq.com/videos/ironMan.jpg'/> |
137 |
| - </div> |
138 |
| -</template> |
139 |
| - |
140 |
| -<script setup lang="ts"> |
141 |
| -import { reactive } from 'vue'; |
142 |
| - |
143 |
| -const options = reactive({ |
144 |
| - width: '500px', //播放器高度 |
145 |
| - height: '260px', //播放器高度 |
146 |
| - color: "#409eff", //主题色 |
147 |
| - currentTime:60, |
148 |
| - speed:false, //关闭进度条拖动 |
149 |
| - title: '', //视频名称 |
150 |
| - src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 |
151 |
| -}) |
152 |
| -</script> |
153 |
| - |
154 |
| -<style scoped> |
155 |
| -</style> |
156 |
| -``` |
157 |
| - |
158 |
| -::: |
159 |
| - |
160 |
| - |
161 |
| - |
162 |
| -还可以通过`props`的`control`属性 来控制是否显示控制器 |
163 |
| -:::demo 通过`control` 来控制是否显示控制器 |
164 |
| -```vue |
165 |
| -<template> |
166 |
| - <div> |
167 |
| - <vue3VideoPlay v-bind="options" poster='https://go.dreamwq.com/videos/ironMan.jpg'/> |
168 |
| - </div> |
169 |
| -</template> |
170 |
| - |
171 |
| -<script setup lang="ts"> |
172 |
| -import { reactive } from 'vue'; |
173 |
| - |
174 |
| -const options = reactive({ |
175 |
| - width: '500px', //播放器高度 |
176 |
| - height: '260px', //播放器高度 |
177 |
| - color: "#409eff", //主题色 |
178 |
| - control: false, //是否显示控制器 |
179 |
| - title: '', //视频名称 |
180 |
| - src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 |
181 |
| -}) |
182 |
| -</script> |
183 |
| - |
184 |
| -<style scoped> |
185 |
| -</style> |
186 |
| - |
187 |
| -``` |
188 |
| -::: |
189 |
| - |
190 |
| - |
191 |
| - |
192 |
| -## 事件示例 |
193 |
| -:::demo `vue3-video-play` 支持原生`video`所有事件。 |
194 |
| - |
195 |
| -```vue |
196 |
| -<template> |
197 |
| - <div> |
198 |
| - <vue3VideoPlay |
199 |
| - width="800px" |
200 |
| - title="钢铁侠" |
201 |
| - :src="options.src" |
202 |
| - :poster="options.poster" |
203 |
| - @play="onPlay" |
204 |
| - @pause="onPause" |
205 |
| - @timeupdate="onTimeupdate" |
206 |
| - @canplay="onCanplay" /> |
207 |
| - </div> |
208 |
| - |
209 |
| -</template> |
210 |
| - |
211 |
| - |
212 |
| -<script setup lang="ts"> |
213 |
| -import { reactive } from 'vue'; |
214 |
| - |
215 |
| -const options = reactive({ |
216 |
| - src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 |
217 |
| - poster: '', //封面 |
218 |
| -}) |
219 |
| -const onPlay = (ev) => { |
220 |
| - console.log('播放') |
221 |
| -} |
222 |
| -const onPause = (ev) => { |
223 |
| - console.log(ev, '暂停') |
224 |
| -} |
225 |
| - |
226 |
| -const onTimeupdate = (ev) => { |
227 |
| - console.log(ev, '时间更新') |
228 |
| -} |
229 |
| -const onCanplay = (ev) => { |
230 |
| - console.log(ev, '可以播放') |
231 |
| -} |
232 |
| -</script> |
233 |
| - |
234 |
| -<style scoped> |
235 |
| -</style> |
236 |
| - |
237 |
| -``` |
238 |
| - |
239 |
| -::: |
240 |
| - |
241 |
| - |
242 |
| - |
243 |
| -## Hls m3u8视频/直播 |
244 |
| -:::demo `vue3-video-play` 支持m3u8(hls)播放 |
245 |
| -```vue |
246 |
| -<template> |
247 |
| - <div> |
248 |
| - <vue3VideoPlay |
249 |
| - width="800px" |
250 |
| - title="冰河世纪" |
251 |
| - :src="options.src" |
252 |
| - :type="options.type" |
253 |
| - :autoPlay="false" |
254 |
| - /> |
255 |
| - </div> |
256 |
| - |
257 |
| -</template> |
258 |
| -<script setup lang="ts"> |
259 |
| -import { reactive } from 'vue'; |
260 |
| -const options = reactive({ |
261 |
| - src: "https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8", //视频源 |
262 |
| - type: 'm3u8', //视频类型 |
263 |
| -}) |
264 |
| -</script> |
265 |
| - |
266 |
| -<style scoped> |
267 |
| -</style> |
268 |
| - |
269 |
| -``` |
270 |
| -::: |
271 |
| - |
272 |
| - |
273 | 93 |
|
274 | 94 | ## Props
|
275 | 95 | vue3-video-play 支持video原生所有Attributes [video原生属性](https://segmentfault.com/a/1190000008053507) 使用方式和props属性使用一致
|
276 | 96 |
|
277 |
| -| 名称 | 说明 | 类型 | 可选值 | 默认值 | |
278 |
| -| ------------- | :-------------------: | :-----: | :------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: | |
279 |
| -| width | 播放器宽度 | string | - | 800px | |
280 |
| -| height | 播放器高度 | string | - | 450px | |
281 |
| -| color | 播放器主色调 | string | - | #409eff | |
282 |
| -| src | 视频资源 | string | - | - | |
283 |
| -| title | 视频名称 | string | - | - | |
284 |
| -| type | 视频类型 | string | - | video/mp4 | |
285 |
| -| poster | 视频封面 | string | - | 视频第一帧 | |
286 |
| -| webFullScreen | 网页全屏 | boolean | - | false | |
287 |
| -| speed | 是否支持快进快退 | boolean | - | true | |
288 |
| -| currentTime | 跳转到固定播放时间(s) | number | - | 0 | |
289 |
| -| playsinline | ios点击屏幕是否全屏 | boolean | - | false | |
290 |
| -| muted | 静音 | boolean | - | false | |
291 |
| -| speedRate | 倍速配置 | array | - | ["2.0", "1.0", "1.5", "1.25", "0.75", "0.5"] | |
292 |
| -| autoPlay | 自动播放 | boolean | - | false,为true时会自动静音 | |
293 |
| -| loop | 循环播放 | boolean | - | false | |
294 |
| -| mirror | 镜像画面 | boolean | - | false | |
295 |
| -| ligthOff | 关灯模式 | boolean | - | false | |
296 |
| -| volume | 默认音量 | number | 0-1 | 0.3 | |
297 |
| -| control | 是否显示控制器 | boolean | - | true | |
298 |
| -| controlBtns | 控制器显示的按钮 | array | ['audioTrack', 'quality', 'speedRate', 'volume', 'setting', 'pip', 'pageFullScreen', 'fullScreen'] | ['audioTrack', 'quality', 'speedRate', 'volume', 'setting', 'pip', 'pageFullScreen', 'fullScreen'] | |
299 |
| -| preload | 预加载 | string | meta/auto/none | auto | |
| 97 | +| 名称 | 说明 | 类型 | 可选值 | 默认值 | |
| 98 | +| ------ | :--------: | :----: | :----: | :----: | |
| 99 | +| width | 播放器宽度 | string | - | 800px | |
| 100 | +| height | 播放器高度 | string | - | 450px | |
300 | 101 |
|
301 |
| -### `props`属性 `controlBtns` 按钮说明 |
302 |
| -| 名称 | 说明 | |
303 |
| -| -------------- | :--------------: | |
304 |
| -| audioTrack | 音轨切换按钮 | |
305 |
| -| quality | 视频质量切换按钮 | |
306 |
| -| speedRate | 速率切换按钮 | |
307 |
| -| volume | 音量 | |
308 |
| -| setting | 设置 | |
309 |
| -| pip | 画中画按钮 | |
310 |
| -| pageFullScreen | 网页全屏按钮 | |
311 |
| -| fullScreen | 全屏按钮 | |
312 | 102 |
|
313 | 103 | ## Events
|
314 | 104 | vue3-video-play支持video原生所有事件 [video默认事件](https://segmentfault.com/a/1190000008053507)
|
315 | 105 |
|
316 |
| -| 事件名称 | 说明 | 回调 | |
317 |
| -| -------------- | ------------------ | ----- | |
318 |
| -| mirrorChange | 镜像翻转事件 | val | |
319 |
| -| loopChange | 循环播放开关事件 | val | |
320 |
| -| lightOffChange | 关灯模式事件 | val | |
321 |
| -| loadstart | 客户端开始请求数据 | event | |
322 |
| -| progress | 客户端正在请求数据 | event | |
323 |
| -| error | 请求数据时遇到错误 | event | |
324 |
| -| stalled | 网速失速 | event | |
325 |
| -| play | 开始播放时触发 | event | |
326 |
| -| pause | 暂停时触发 | event | |
327 |
| -| loadedmetadata | 成功获取资源长度 | event | |
328 |
| -| loadeddata | 缓冲中 | event | |
329 |
| -| waiting | 等待数据,并非错误 | event | |
330 |
| -| playing | 开始回放 | event | |
331 |
| -| canplay | 暂停状态下可以播放 | event | |
332 |
| -| canplaythrough | 可以持续播放 | event | |
333 |
| -| timeupdate | 更新播放时间 | event | |
334 |
| -| ended | 播放结束 | event | |
335 |
| -| ratechange | 播放速率改变 | event | |
336 |
| -| durationchange | 资源长度改变 | event | |
337 |
| -| volumechange | 音量改变 | event | |
| 106 | +| 事件名称 | 说明 | 回调 | |
| 107 | +| ------------ | ------------ | ---- | |
| 108 | +| mirrorChange | 镜像翻转事件 | val | |
| 109 | + |
338 | 110 |
|
339 | 111 | ## 快捷键说明
|
340 | 112 | 支持快捷键操作
|
341 |
| -| 键名 | 说明 | |
342 |
| -| ---------- | ----------------------------- | |
343 |
| -| Space | 暂停/播放 | |
344 |
| -| 方向右键 → | 单次快进 10s,长按 5 倍速播放 | |
345 |
| -| 方向左键 ← | 快退 10s | |
346 |
| -| 方向上键 ↑ | 音量+10% | |
347 |
| -| 方向下键 ↓ | 音量-10% | |
348 |
| -| Esc | 退出全屏/退出网页全屏 | |
349 |
| -| F | 全屏/退出全屏 | |
| 113 | +| 键名 | 说明 | |
| 114 | +| ----- | ---- | |
| 115 | +| Space | / | |
350 | 116 | # Author
|
351 | 117 |
|
352 | 118 | [xdlumia](https://dreamwq.com)
|
|
0 commit comments