之前的vue我的项目中用到视频播放器,然而UI不是很难看,索性就打算写一个视频播放器插件紧随着vue3的公布,vue3的生态还不是很残缺,就索性把这个视频播放器插件批改成了vue3版

插件Github地址 vue-video-player

先看一下这个播放器(vue3-video-play)的界面吧

vue3-video-play视频播放插件基于原生的HTML5的 <video> 标签 开发,所以反对的视频格式和 <video> 统一,并且反对<video>标签的所有原生属性和办法

主页

https://xdlumia.github.io

性能一览

  1. 反对快捷键操作
  2. 反对倍速播放设置
  3. 反对镜像画面设置
  4. 反对关灯模式设置
  5. 反对画中画模式播放
  6. 反对全屏播放
  7. 反对网页全屏播放

装置

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 videoPlay from 'vue3-video-play' // 引入组件import 'vue3-video-play/dist/style.css' // 引入cssapp.use(videoPlay)app.mount('#app')

组件内应用

// require stylesimport 'vue3-video-play/dist/style.css'import { videoPlay } from 'vue-video-player'export default {  components: {    videoPlay  }}

SPA 单页面应用示例

<template>  <div>    <videoPlay     v-bind="options"     @play="onPlay"    @pause="onPause"     @timeupdate="onTimeupdate"     @canplay="onCanplay" />  </div></template><script setup lang="ts">import { reactive } from 'vue';import { videoPlay } from '../lib/index.js';const options = reactive({  width: '800px', //播放器高度  height: '450px', //播放器高度  color: "#409eff", //主题色  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, //是否显示控制器  title: '', //视频名称  src: "http://vjs.zencdn.net/v/oceans.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>

Props

vue3-video-play反对video原生所有属性 video默认属性 应用形式和props属性应用统一

名称阐明类型可选值默认值
width播放器宽度string-800px
height播放器高度string-450px
title视频名称string--
src视频资源string--
color播放器主色调string-#409eff
webFullScreen网页全屏boolean-false
speedRate倍速配置array-["0.75", "1.0", "1.25", "1.5", "2.0"]
mirror镜像画面boolean-false
ligthOff关灯模式boolean-false
muted静音boolean-false
autoPlay自动播放boolean-false,为true时会主动静音
loop循环播放boolean-false
volume默认音量0.30-10.3
poster视频封面string-视频第一帧

Events

vue3-video-play反对video原生所有事件 video默认事件

事件名称阐明回调
loadstart客户端开始申请数据event
progress客户端正在申请数据event
error申请数据时遇到谬误event
stalled网速失速event
play开始播放时触发event
pause暂停时触发event
loadedmetadata胜利获取资源长度event
loadeddataevent
waiting期待数据,并非谬误event
playing开始回放event
canplay暂停状态下能够播放event
canplaythrough能够继续播放event
timeupdate更新播放工夫event
ended播放完结event
ratechange播放速率扭转event
durationchange资源长度扭转event
volumechange音量扭转event

视频没有基于任何插件,所以比拟小, jscss加起来只有38kb大小,此插件会不断更新,遇到什么问题也能够在github上提issue

插件Github地址 vue-video-player 无妨点个星星

更多示例查看主页

https://xdlumia.github.io

Author

xdlumia