Vue 视频音频播放

article/2025/10/9 7:06:10
<hlsPlayer :rowData="rowData" ref="child" />
<videoPlayer :rowData="rowData" ref="childTwo" />

1.安装video.js依赖

npm install --save video.js

2.全局引入

import Video from 'video.js'
import 'video.js/dist/video-js.css'

3.使用 (封装组件)

实现效果:

 音频组件:

<template><Modalv-model="modals"width="400":styles="{height:'400px',overflow:'hidden'}"scrollablefooter-hideclosable:title="titleFrom":mask-closable="false":z-index="1"@on-cancel="handleReset"><div><aplayer :playerOptions="aOption" v-if="isAudio"></aplayer><vplayer :playerOptions="vOption" style="height: 300px;" v-if="!isAudio"></vplayer></div></Modal>
</template><script>
import {aplayer,vplayer} from 'vue-hls-player'
export default {name: "hlsPlayer",props:{rowData:Object,default:null},comments:{aplayer,vplayer},data(){return {modals:false,isAudio:true,titleFrom:'媒体',aOption:{type: "application/x-mpegURL",src: 'http://ph1vqefl0.bkt.clouddn.com/hlsnature2',preload: false,autoplay: false,isLoop: false,controls: 'progress,current,durration',},vOption:{type: "application/x-mpegURL",src: 'http://ph1vqefl0.bkt.clouddn.com/hlsnature2',preload: false,autoplay: false,isLoop: false,playsinline: false,poster: 'https://oimdztrab.qnssl.com/Frp4SyVe5PosdkUKRaE-krjK7B5z',controls: 'progress,current,durration,volume',crossOrigin: false}}},watch:{rowData(node){ this.aOption['src'] = node.playUrl;}},created() {},methods:{handleReset(){}}
}
</script><style scoped></style>

 视频组件:

<template><Modalv-model="modals"width="400":styles="{height:'400px',overflow:'hidden'}"scrollablefooter-hideclosable:title="titleFrom":mask-closable="false":z-index="1"@on-cancel="handleReset"><div><video-playerclass="video-player vjs-custom-skin"ref="videoPlayer":playsinline="true":options="playerOptions"></video-player></div></Modal></template><script>
export default {name: "videoPlayers",props:{rowData:Object,default:null},data () {return {modals:false,titleFrom:'媒体',// 视频播放playerOptions: {playbackRates: [0.7, 1.0, 1.5, 2.0],autoplay: false,muted: false,loop: false,preload: 'auto',language: 'zh-CN',aspectRatio: '16:9',fluid: true,sources: [{type: "",src: 'http://vjs.zencdn.net/v/oceans.mp4'}],poster: "",// width: document.documentElement.clientWidth,notSupportedMessage: '此视频暂无法播放,请稍后再试',controlBar: {timeDivider: true,durationDisplay: true,remainingTimeDisplay: false,fullscreenToggle: true  //全屏按钮}}}},watch:{rowData(node){ this.playerOptions['sources'][0]['src'] = node.playUrl;this.playerOptions['poster'] = node.opusUrl; }},created() {// this.playerOptions['sources'][0]['src'] = '接口地址';},methods:{handleReset(){}}
}
</script><style scoped>
.video-js .vjs-icon-placeholder {width: 100%;height: 100%;display: block;
}
</style>

4.详细使用教程

(1)引入

import hlsPlayer from "@/components/uplayVideo/hlsPlayer";
import videoPlayer from "@/components/uplayVideo/videoPlayer";

(2)注册

 components: {hlsPlayer,videoPlayer,},

(3)页面中使用

(4)绑定事件(在这里我是通过插槽绑定在表格上的)

 为了方便复制也为你准备了现成的CV  但是不要忘了修改请求头 slot: "content",这里需要自己加上  

<template slot-scope="{ row }" slot="content"><div @click="audioClick(row)"><span>{{ row.content }} </span></div></template>

(5)方法函数

audioClick(row) {this.rowData = {};if (row.contentType == 6) {this.rowData.playUrl = row.content;this.$refs.child.modals = true;} else if (row.contentType == 1) {this.rowData.playUrl = row.content;this.rowData.opusUrl = row.showUrl;this.$refs.childTwo.modals = true;}},

函数详解

this.rowData = {};  是防止组件封装的watch  监听不到

 if (row.contentType == 6)  是判断你当前点击的元素是什么类型,比如作者这里就有mp3 mp4  音频和视频两种资源,这个都是通过你表格的当前行row 这个属性去判断的,如果您发现后端提供给你的数据没有判断类型的东西,请与后端进行沟通

 this.rowData.playUrl = row.content;  是把你当前的视频音频地址传入子组件

 this.$refs.child.modals = true;  是通过父传子的方式控制子组件的显示隐藏的

作者封装组件时默认都是统一做了隐藏


http://chatgpt.dhexx.cn/article/gUydNE4X.shtml

相关文章

vue3 vue2 视频 图片 懒加载插件

一个npm的小插件&#xff0c;只有8kb左右的轻量级插件 可以设置图片和视频加载时的占位图&#xff0c;图片加载错误占位图&#xff0c;规定加载的区域 vue3的话具体可以看文档v3-lazyload-hyw - npm (npmjs.com) vue2的话文档在这里 v2-lazyload-hyw - npm (npmjs.com) 安装…

Vue3视频播放器组件Vue3-video-play入门教程

Vue3-video-play适用于 Vue3 的 hls.js 播放器组件 | 并且支持MP4/WebM/Ogg格式。 1、支持快捷键操作 2、支持倍速播放设置 3、支持镜像画面设置 4、支持关灯模式设置 5、支持画中画模式播放 6、支持全屏/网页全屏播放 7、支持从固定时间开始播放 8、支持移动端&#xff0c;移动…

Vue3全套教程合集

Vue3全套教程合集 点击跳转具体教程&#xff0c;以下所有教程基于脚手架书写&#xff0c;运行代码需要在脚手架环境。 一、Vue3学习-初识Vue3、创建Vue3.0工程 二、Vue3学习-分析工程结构、初识setup 三、Vue3学习-ref函数、reactive函数、Vue3响应式原理 四、Vue3学习-Vue3的…

vue怎么设置封面_vue设置视频封面教程 vue如何修改标题

现在使用vue的伙伴很多&#xff0c;可以说是视频编辑美化软件排前几的软件&#xff0c;能够使用的功能非常多&#xff0c;有用户就想知道如何才能进行标题的修改&#xff0c;视频的封面又是怎么设置的&#xff0c;想知道的伙伴&#xff0c;可以在iefans看看详细的操作方法哦&am…

vue视频教程,vue2.0

vue视频教程很多人对我说vue教程&#xff0c;这里我给大家推荐vue2.0视频教程下载&#xff0c;这是一套从基础到项目一共8天的就业视频从0基础到商城实战有基础可以跳过直接项目 可以关注微信公众号搜索&#xff1a;cityapes或者搜索:城市一猿 点击菜单的vue.js就可以下载了

vue教程

原文 1 vue安装 1.1 直接用 script标签引入 对于制作原型或学习&#xff0c;你可以这样使用最新版本&#xff1a; <script src"https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>对于生产环境&#xff0c;我们推荐链接到一个明确的版本号和构…

vue视频教程大全下载

vue视频12套完整教程大全下载&#xff0c;新手开发必备包含项目实战等多套视频教程 可以扫描二维码关注微信公众号 或者搜索&#xff1a;cityapes或者搜索:城市一猿 点击菜单的vue.js就可以下载了

Vue基础视频教程(一)

1、github上的网址&#xff1a;https://github.com/vuejs/vue 2、Vue中文文档&#xff1a;https://cn.vuejs.org/v2/guide/installation.html 3、CDN&#xff1a;http://www.bootcdn.cn/ 4、看哥们儿&#xff0c;分享给我的视频--> 基础实验代码&#xff1a; <!DOCT…

vue初级视频教程

1.观看本视频之前 官方指南假设你已了解关于 HTML、CSS 和 JavaScript 的中级知识。如果你刚开始学习前端开发&#xff0c;将框架作为你的第一步可能不是最好的主意——掌握好基础知识再来吧&#xff01;之前有其它框架的使用经验会有帮助&#xff0c;但这不是必需的。 2.Vue…

【第一季】Vue2.0视频教程-内部指令(共8集)

【第一季】Vue2.0视频教程-内部指令(共8集) 【第一季】Vue2.0视频教程-内部指令(共8集)第1节&#xff1a;走起我的Vue2.0 学习这套课程你需要的前置知识&#xff1a;下载Vue2.0的两个版本&#xff1a;项目结构搭建live-server使用编写第一个HelloWorld代码&#xff1a; 第2节&a…

vue.js2.0完整视频教程12套

0.1智能社vuejs(1-11章全套) 0.2英文版learing vuejs 0.3Vue.js实战小米阅读开发 0.4走进Vue.js2.0 0.5Vuejs教程45节课 0.6Vue.jsNode.js构建音乐播放器 0.7js高级课程vuejs 0.8vue.js实战开发系列 0.9Vue视频教程基础视频教程 10.vue.js实战wm平台 等...就不一一列…

万字入门推荐系统

来源&#xff1a;毛小伟 本文约8000字&#xff0c;建议阅读10分钟 本文作者整理出了这份万字入门推荐系统&#xff0c;涵盖了推荐系统基础、进阶、实战的全部知识点&#xff0c; 最近一周作者跟朋友三人&#xff0c;根据自身如何入门推荐系统&#xff0c;再结合三人分别在腾讯…

构建自己的Android知识体系

0. 背景 构建一个属于自己的知识体系,能够让我们学到的知识体系化.让自己清楚哪块是自己的知识盲区,哪块已经构建起根基.然后根据实际情况,有针对性的进行模块学习.让自己成为一个合格的Android工程师. 平时看博客或者学知识,学到的东西比较零散,没有独立的知识模块概念,而且…

公司用的 MySQL 团队开发规范,太详细了,建议收藏!

点击上方“Java精选”&#xff0c;选择“设为星标” 别问别人为什么&#xff0c;多问自己凭什么&#xff01; 下方留言必回&#xff0c;有问必答&#xff01; 每天 08:35 更新文章&#xff0c;每天进步一点点... 数据库对象命名规范 数据库对象 数据库对象是数据库的组成部分&a…

电影信息爬取与聚类分析

电影信息爬取与聚类分析 要求&#xff1a;爬取电影相关数据&#xff0c;条数不小于1000&#xff0c;结构自定&#xff0c;要求包含情感信息&#xff0c;类别&#xff0c;评论关键词等&#xff0c;然后基于这些信息根据用户的喜好做相关性聚类。 一、总体设计 &#xff08;1&…

算法推导 | 卷积神经网络(CNN)反向传播

作者丨南柯一梦宁沉沦知乎 编辑丨极市平台 来源丨https://zhuanlan.zhihu.com/p/61898234 多层感知机反向传播的数学推导&#xff0c;主要是用数学公式来进行表示的&#xff0c;在全连接神经网络中&#xff0c;它们并不复杂&#xff0c;即使是纯数学公式也比较好理解。而卷积神…

深入浅出学习Hive

本文是基于CentOS 7.9系统环境&#xff0c;进行hive的学习和使用 一、Hive的简介 1.1 Hive基本概念 (1) 什么是hive Hive是用于解决海量结构化日志的数据统计工具&#xff0c;是基于Hadoop的一个数据仓库工具&#xff0c;可以将结构化的数据文件映射为一张表&#xff0c;并提供…

你知道豆瓣电影是怎么评分的吗?(实战篇—手把手教你分析豆瓣电影)

点赞再看&#xff0c;养成好习惯 Python版本3.8.0&#xff0c;开发工具&#xff1a;Pycharm 写在前面的话&#xff1a; 如果你是因为看到标题进来的&#xff0c;那恭喜你&#xff0c;又多了一个涨&#xff08;入&#xff09;知&#xff08;坑&#xff09;识的机会。 在这篇豆…

万字入门推荐系统!

最近一周我、强子、Y哥三人&#xff0c;根据自身如何入门推荐系统&#xff0c;再结合三人分别在腾讯做广告推荐、字节做视频推荐、百度做信息流推荐的经历&#xff0c;整理出了这份万字入门推荐系统。内容十分详细&#xff0c;涵盖了推荐系统基础、进阶、实战的全部知识点&…

【原创】LeetCode刷题-Python版

文章目录 LeetCode1、两数之和*2、两数相加3、无重复字符的最长子串**4、寻找两个正序数组的中位数**5、最长回文子串**动态规划思维导图6、Z 字形变换7、整数反转8、字符串转换整数 (atoi)9、回文数10、正则表达式匹配*11、盛最多水的容器*12、整数转罗马数字13、 罗马数字转整…