vue3视频播放插件

1、效果图(网上随便找的视频用来测试的,所以有个水印)
在这里插入图片描述
2、引入插件

npm 安装:npm i vue3-video-play --save
yarn 安装:yarn add vue3-video-play --save

3、项目中引入
全局引入方式:在main.js中引入以下

import vue3videoPlay from "vue3-video-play"; // 引入组件
import "vue3-video-play/dist/style.css"; // 引入css
app.use(vue3videoPlay);

组件内引入方式:

import "vue3-video-play/dist/style.css";
import {
    
     videoPlay } from "vue-video-play";
components: {
    
     videoPlay },

4、使用及例子(因为我用的全局引入)

<template>
  <div class="about">
    <vue3VideoPlay
      v-bind="options"
      poster="https://xxxxx.jpg" //  视频封面地址
    />
  </div>
</template>
<script setup>
import {
    
     reactive } from "vue";

const options = reactive({
    
    
  width: "100%", //播放器宽度 也可以使用px
  height: "100%", //播放器高度  同理可以使用px
  color: "#409eff", //主题色
  title: "", //视频名称
  src: "https://xxxxx.mp4", //视频源
  muted: false, //静音
  webFullScreen: false,
  speedRate: ["0.5", "0.75", "1.0", "1.25", "1.5", "2.0"], //播放倍速
  autoPlay: false, //自动播放
  loop: false, //循环播放
  mirror: false, //镜像画面
  ligthOff: false, //关灯模式
  volume: 0.3, //默认音量大小
  control: true, //是否显示控制
  controlBtns: [
    "audioTrack",
    "quality",
    "speedRate",
    "volume",
    "setting",
    "pip",
    "pageFullScreen",
    "fullScreen",
  ], //显示所有按钮,
});
</script>

5、该插件支持原生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>
import {
    
     reactive } from "vue";

const options = reactive({
    
    
  src: "https://xxxx.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>
参数 说明 类型 可选值 默认值
width 播放器宽度 string - 800px
height 播放器高度 string - 450px
color 播放器主色调 string - #409eff
src 视频资源 string - -
title 视频名称 string - -
type 视频类型 string - video/mp4
poster 视频封面 string - 视频第一帧
webFullScreen 网页全屏 boolean - false
speed 是否支持快进快退 boolean - true
currentTime 跳转到固定播放时间(s) number - 0
playsinline ios 点击屏幕是否全屏 boolean - false
muted 静音 boolean - false
speedRate 倍速配置 array - [“2.0”, “1.0”, “1.5”, “1.25”, “0.75”, “0.5”]
autoPlay 自动播放 boolean - false,为 true 时会自动静音
loop 循环播放 boolean - false
mirror 镜像画面 boolean - false
ligthOff 关灯模式 boolean - false
volume 默认音量 number 0-1 0.3
control 是否显示控制器 boolean - true
controlBtns 控制器显示的按钮 array [‘audioTrack’, ‘quality’, ‘speedRate’, ‘volume’, ‘setting’, ‘pip’, ‘pageFullScreen’, ‘fullScreen’] [‘audioTrack’, ‘quality’, ‘speedRate’, ‘volume’, ‘setting’, ‘pip’, ‘pageFullScreen’, ‘fullScreen’]
preload 预加载 string meta/auto/none auto

controlBtns 按钮说明

名称 说明
audioTrack 音轨切换按钮
quality 视频质量切换按钮
speedRate 速率切换按钮
volume 音量
setting 设置
pip 画中画按钮
pageFullScreen 网页全屏按钮
fullScreen 全屏按钮

事件Events

事件名称 说明 回调
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(就是F键) 全屏/退出全屏

猜你喜欢

转载自blog.csdn.net/weixin_44949068/article/details/129616055