插件Github地址 vue3-video-play
vue3-video-play
hls.js player component for Vue3.
实用于 Vue3 的 hls.js 播放器组件。
先看一下这个播放器(vue3-video-play)的界面吧
vue3-video-play视频播放插件基于原生的HTML5的 <video>
标签 开发,所以反对的视频格式和 <video>
统一,并且反对<video>
标签的所有原生属性和办法
<span style="color:#cb3837"> 必须应用 vue@3.2.4及以上版本</span>
性能一览
- 反对快捷键操作
- 反对倍速播放设置
- 反对镜像画面设置
- 反对关灯模式设置
- 反对画中画模式播放
- 反对全屏/网页全屏播放
- 反对从固定工夫开始播放
- 反对挪动端,挪动端会主动调用自带视频播放器
- 反对hls视频流播放,反对直播
hls播放反对清晰度切换
主页示例
https://xdlumia.github.io
rc版本 v1.3.0-rc.3
- 新增: 反对hls视频流播放
- 新增: 新增画质切换,需视频流反对
- 新增: 新增画音视切换,需视频流反对
- 新增: props参数减少
currentTime
属性,可跳转到固定工夫播放 新增: props参数减少
type
属性,视频格式近期更新 v1.2.52
- 新增: 右键菜单性能,右键菜单包涵,视频滤镜调节、快捷键阐明、复制以后视频网址
- 新增:
mirrorChange
loopChange
lightOffChange
事件 - 新增: 减少空格快捷键
播放/暂停
的操作 优化: 如果音量为 0 敞开静音按钮 音量设置为 5
使用指南
装置
npm装置:
npm i vue3-video-play --save
yarn装置:
yarn add vue3-video-play --save
开始应用
全局应用
import { createApp } from 'vue'import App from './App.vue'let app = createApp(App)import vue3videoPlay from 'vue3-video-play' // 引入组件import 'vue3-video-play/dist/style.css' // 引入cssapp.use(vue3videoPlay)app.mount('#app')
组件内应用
// require styleimport 'vue3-video-play/dist/style.css'import { videoPlay } from 'vue-video-play'export default { components: { videoPlay }}
根本示例
提供了丰盛了配置性能
:::demo 自定义配置 比方自定义poster。
<template> <div> <vue3VideoPlay v-bind="options" poster='https://go.dreamwq.com/videos/ironMan.jpg'/> </div></template><script setup lang="ts">import { reactive } from 'vue';const options = reactive({ width: '800px', //播放器高度 height: '450px', //播放器高度 color: "#409eff", //主题色 title: '', //视频名称 src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 muted: false, //静音 webFullScreen: false, speedRate: ["0.75", "1.0", "1.25", "1.5", "2.0"], //播放倍速 autoPlay: false, //自动播放 loop: false, //循环播放 mirror: false, //镜像画面 ligthOff: false, //关灯模式 volume: 0.3, //默认音量大小 control: true, //是否显示控制器})</script><style scoped></style>
:::
能够通过props
的speed
开启或敞开进度条性能, 并且通过 currentTime
属性管制从60秒开始播放
:::demo 通过speed
敞开进度条拖动性能。 并且通过 currentTime
属性管制从60秒开始播放
<template> <div> <vue3VideoPlay v-bind="options" poster='https://xdlumia.oss-cn-beijing.aliyuncs.com/videos/02.jpg'/> </div></template><script setup lang="ts">import { reactive } from 'vue';const options = reactive({ width: '500px', //播放器高度 height: '260px', //播放器高度 color: "#409eff", //主题色 currentTime:60, speed:false, //敞开进度条拖动 title: '', //视频名称 src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源})</script><style scoped></style>
:::
还能够通过props
的control
属性 来管制是否显示控制器
:::demo 通过control
来管制是否显示控制器
<template> <div> <vue3VideoPlay v-bind="options" poster='https://xdlumia.oss-cn-beijing.aliyuncs.com/videos/02.jpg'/> </div></template><script setup lang="ts">import { reactive } from 'vue';const options = reactive({ width: '500px', //播放器高度 height: '260px', //播放器高度 color: "#409eff", //主题色 control: false, //是否显示控制器 title: '', //视频名称 src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源})</script><style scoped></style>
:::
事件示例
:::demo vue3-video-play
反对原生video
所有事件。
<template> <div> <vue3VideoPlay width="800px" title="钢铁侠" :src="options.src" :poster="options.poster" @play="onPlay" @pause="onPause" @timeupdate="onTimeupdate" @canplay="onCanplay" /> </div></template><script setup lang="ts">import { reactive } from 'vue';const options = reactive({ src: "https://go.dreamwq.com/videos/IronMan.mp4", //视频源 poster: '', //封面})const onPlay = (ev) => { console.log('播放')}const onPause = (ev) => { console.log(ev, '暂停')}const onTimeupdate = (ev) => { console.log(ev, '工夫更新')}const onCanplay = (ev) => { console.log(ev, '能够播放')}</script><style scoped></style>
:::
Hls m3u8视频/直播
:::demo vue3-video-play
反对m3u8(hls)播放
<template> <div> <vue3VideoPlay width="800px" title="冰河世纪" :src="options.src" :type="options.type" :autoPlay="false" /> </div></template><script setup lang="ts">import { reactive } from 'vue';const options = reactive({ src: "https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8", //视频源 type: 'm3u8', //视频类型})</script><style scoped></style>
:::
Props
vue3-video-play 反对video原生所有Attributes video原生属性 应用形式和props属性应用统一
名称 | 阐明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
width | 播放器宽度 | string | - | 800px |
height | 播放器高度 | string | - | 450px |
title | 视频名称 | string | - | - |
src | 视频资源 | string | - | - |
type | 视频类型 | string | - | video/mp4 |
color | 播放器主色调 | string | - | #409eff |
webFullScreen | 网页全屏 | boolean | - | false |
speed | 是否反对快进快退 | boolean | - | true |
currentTime | 跳转到固定播放工夫(s) | number | - | 0 |
speedRate | 倍速配置 | array | - | ["2.0", "1.0", "1.5", "1.25", "0.75", "0.5"] |
mirror | 镜像画面 | boolean | - | false |
ligthOff | 关灯模式 | boolean | - | false |
muted | 静音 | boolean | - | false |
autoPlay | 自动播放 | boolean | - | false,为true时会主动静音 |
loop | 循环播放 | boolean | - | false |
volume | 默认音量 | 0.3 | 0-1 | 0.3 |
poster | 视频封面 | string | - | 视频第一帧 |
Events
vue3-video-play反对video原生所有事件 video默认事件
事件名称 | 阐明 | 回调 |
---|---|---|
mirrorChange | 镜像翻转事件 | val |
loopChange | 循环播放开关事件 | val |
lightOffChange | 关灯模式事件 | val |
loadstart | 客户端开始申请数据 | event |
progress | 客户端正在申请数据 | event |
error | 申请数据时遇到谬误 | event |
stalled | 网速失速 | event |
play | 开始播放时触发 | event |
pause | 暂停时触发 | event |
loadedmetadata | 胜利获取资源长度 | event |
loadeddata | 缓冲中 | event |
waiting | 期待数据,并非谬误 | event |
playing | 开始回放 | event |
canplay | 暂停状态下能够播放 | event |
canplaythrough | 能够继续播放 | event |
timeupdate | 更新播放工夫 | event |
ended | 播放完结 | event |
ratechange | 播放速率扭转 | event |
durationchange | 资源长度扭转 | event |
volumechange | 音量扭转 | event |
快捷键阐明
反对快捷键操作
键名 | 阐明 |
---|---|
Space | 暂停/播放 |
方向右键 → | 单次快进 10s,长按 5 倍速播放 |
方向左键 ← | 快退 10s |
方向上键 ↑ | 音量+10% |
方向下键 ↓ | 音量-10% |
Esc | 退出全屏/退出网页全屏 |
F | 全屏/退出全屏 |
Author
xdlumia
点个start
vue3-video-play