vue3-video-play

vue3-video-play

功能丰富的Vue 3视频播放器组件

vue3-video-play是一个基于Vue 3的视频播放器组件。它支持hls流媒体和多种视频格式,具有快捷键控制、倍速播放、画面镜像等功能。该组件界面美观、配置灵活,可适配移动端,并支持清晰度切换和直播。对于开发者而言,这是一个功能完善、易于集成的视频播放解决方案。

vue3-video-play视频播放器Vue3组件Hls播放自定义配置Github开源项目
<!-- * @Author: web.王晓冬 * @Date: 2021-08-19 18:56:59 * @LastEditors: itab.link * @LastEditTime: 2023-11-09 15:44:51 * @Description: 文件内容 -->

版本 下载量 GitHub 星标 GitHub 问题 GitHub 分支 GitHub 最后提交 许可证

NPM

<span style="color:#cb3837"> 必须使用 vue@3.2.2及以上版本</span>

Vue3-video-play

适用于 Vue3 的 hls.js 播放器组件 | 同时支持 MP4/WebM/Ogg 格式 配置强大,界面美观

功能概览

  1. 支持快捷键操作
  2. 支持倍速播放设置
  3. 支持镜像画面设置
  4. 支持关灯模式设置
  5. 支持画中画模式播放
  6. 支持全屏/网页全屏播放
  7. 支持从指定时间开始播放
  8. 支持移动端,自动调用原生视频播放器
  9. 支持 hls 视频流播放,支持直播
  10. hls 播放支持清晰度切换

演示主页

https://codelife.cc/vue3-video-play/

最新更新 v1.3.3 🎉

  • 修复: 右键事件错误

使用指南

安装

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"; // 引入css app.use(vue3videoPlay); app.mount("#app");

组件内使用

// 引入样式 import "vue3-video-play/dist/style.css"; import { videoPlay } from "vue3-video-play"; export default { components: { videoPlay, }, };

基本示例

提供了丰富的配置功能 :::demo 自定义配置 例如自定义 poster。

<template> <div> <vue3VideoPlay v-bind="options" poster="https://cdn.jsdelivr.net/gh/xdlumia/files/video-play/ironMan.jpg" /> </div> </template> <script setup lang="ts"> import { reactive } from "vue"; const options = reactive({ width: "800px", // 播放器宽度 height: "450px", // 播放器高度 color: "#409eff", // 主题色 title: "", // 视频名称 src: "https://cdn.jsdelivr.net/gh/xdlumia/files/video-play/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, // 是否显示控制 controlBtns: [ "audioTrack", "quality", "speedRate", "volume", "setting", "pip", "pageFullScreen", "fullScreen", ], // 显示所有按钮, }); </script> <style scoped></style>

可以通过propsspeed开启或关闭进度条功能,并且通过currentTime属性控制从60秒开始播放

通过speed关闭进度条拖动功能。并且通过currentTime属性控制从60秒开始播放

<template> <div> <vue3VideoPlay v-bind="options" poster="https://cdn.jsdelivr.net/gh/xdlumia/files/video-play/ironMan.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://cdn.jsdelivr.net/gh/xdlumia/files/video-play/IronMan.mp4", // 视频源 }); </script> <style scoped></style>

还可以通过propscontrol属性来控制是否显示控制器

通过control来控制是否显示控制器

<template> <div> <vue3VideoPlay v-bind="options" poster="https://cdn.jsdelivr.net/gh/xdlumia/files/video-play/ironMan.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://cdn.jsdelivr.net/gh/xdlumia/files/video-play/IronMan.mp4", // 视频源 }); </script> <style scoped></style>

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://cdn.jsdelivr.net/gh/xdlumia/files/video-play/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>

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>

:::

属性

vue3-video-play 支持所有原生 video 标签属性 video 原生属性,使用方式与 props 属性相同

名称说明类型可选值默认值
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跳转到固定播放时间(秒)number-0
playsinlineiOS点击屏幕是否全屏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默认音量number0-10.3
control是否显示控制器boolean-true
controlBtns控制器显示的按钮array['audioTrack', 'quality', 'speedRate', 'volume', 'setting', 'pip', 'pageFullScreen', 'fullScreen']['audioTrack', 'quality', 'speedRate', 'volume', 'setting', 'pip', 'pageFullScreen', 'fullScreen']
preload预加载stringmeta/auto/noneauto

props属性 controlBtns 按钮说明

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

事件

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播放速率变化事件
durationchange资源时长变化事件
volumechange音量变化事件

快捷键说明

支持快捷键操作

键名说明
空格键暂停/播放
右方向键 →单次快进 10 秒,长按 5 倍速播放
左方向键 ←快退 10 秒
上方向键 ↑音量增加 10%
下方向键 ↓音量减少 10%
Esc 键退出全屏/退出网页全屏
F 键全屏/退出全屏

作者

xdlumia

点个星标

vue3-video-play

编辑推荐精选

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具使用教程AI营销产品酷表ChatExcelAI智能客服
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

数据安全AI助手热门AI工具AI辅助写作AI论文工具论文写作智能生成大纲
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

热门AI工具AI办公办公工具智能排版AI生成PPT博思AIPPT海量精品模板AI创作
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

iTerms

iTerms

企业专属的AI法律顾问

iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。

SimilarWeb流量提升

SimilarWeb流量提升

稳定高效的流量提升解决方案,助力品牌曝光

稳定高效的流量提升解决方案,助力品牌曝光

Sora2视频免费生成

Sora2视频免费生成

最新版Sora2模型免费使用,一键生成无水印视频

最新版Sora2模型免费使用,一键生成无水印视频

下拉加载更多