前端vue+xgVIdeo集成rstp流播放

server/2024/10/19 5:30:25/

注意:rstp流需要对应的西瓜视频插件

项目:

petition-manager

代码概览:

1. video-player 子  组件

javascript"><template><div id="video-player" class="video-player"></div>
</template>
<script>import Player from 'xgplayer'
import FlvPlugin from 'xgplayer-flv'
import "xgplayer/dist/index.min.css"
export default {props: {url: {// 父组件传过来的视频链接type: String,default: '',},},data() {return {player: null, //实例};},mounted() {console.log('传过来的url:', this.url);// 初始化播放器this.initPlayer();},created() { },// 监听播放路径的变化watch: {url: {handler(newValue, oldValue) {if (!this.player) {this.initPlayer();return;}this.player.src = this.url;},},},methods: {// =========================1,设置播放器必要参数===================initPlayer() {if (!this.url) return console.warn('url is not esist');const config = {id: 'video-player',url: this.url,// fluid: true,isLive: true,plugins: [FlvPlugin],/**倍速播放 */// playbackRate: [0.5, 0.75, 1, 1.5, 2],// defaultPlaybackRate: 1,playsinline: this.isAppleDevice(), // IOS设备设置,防止被浏览器劫持'x5-video-player-type': 'h5', // 微信内置浏览器设置,防止被浏览器劫持'x5-video-orientation': 'portraint',/**画中画 */pip: true,pipConfig: {bottom: 100,right: 100,width: 320,height: 180,},// download: true,/**初始化首帧 */// videoInit: true,// autoplay: true,};//========================== 2,开始实例化======================const player = new Player(config);if (player) {this.player = player;/* 这里注册监听 */// 监听视频开始播放 播放传给父组件的是truethis.player.on('play', () => {this.$emit('triggerEvent', true);});// 监听视频已经暂停 暂停传给父组件的是truethis.player.on('pause', () => {this.$emit('triggerEvent', false);});// 监听 视频退出全屏// this.player.on('exitFullscreen', () => {//   window.scrollTo(0, 0);//   console.log('已经退出全屏了');// });}},// IOS设备设置,防止被浏览器劫持isAppleDevice() {const ua = navigator.userAgent.toLowerCase();return /iphone|ipad|phone|Mac/i.test(ua);},},
};
</script><style></style>

2.父组件中引用:

javascript"><el-dialog :title="title" :visible.sync="openLive" width="700px" height="500px"><video-player-vue :url="url" @triggerEvent="triggerEvent"></video-player-vue></el-dialog>

data  中需要加入  url 属性

方法中需要加入:

javascript"> clickLive() {this.openLive = truethis.url = 'xxxxxxx'},// 监听到子组件传过来的播放状态 true是播放 false是暂停triggerEvent(value) {console.log("是否播放:", value);},

父组件样式:

<style lang="scss" scoped>
.videoPlayer {height: 300px;width: 500px;margin: 0 auto;
}</style>


http://www.ppmy.cn/server/15950.html

相关文章

「笔试刷题」:dd爱框框

一、题目 题目描述 读入n&#xff0c;xn&#xff0c;xn&#xff0c;x,给出nnn个数a[1],a[2],……,a[n]a[1],a[2],……,a[n]a[1],a[2],……,a[n],求最小的区间[l,r][l,r][l,r]&#xff0c;使a[l]a[l1]……a[r]≥xa[l]a[l1]……a[r]≥xa[l]a[l1]……a[r]≥x&#xff0c;若存在相…

JVM 面试题

1. 什么情况下会发生栈内存溢出&#xff1f; 当线程调用堆栈深度超过虚拟机所允许的最大深度时&#xff0c;会抛出StackOverflowError。如果一个线程请求的栈深度超过了虚拟机的允许范围&#xff0c;会抛出OutOfMemoryError。 2. 说一下 JVM 的主要组成部分及其作用&#xff…

K8S基础概念

一、MASTER Kubernetes里的Master指的是集群控制节点&#xff0c;在每个Kubernetes集群里都需要有一个Master来负责整个集 群的管理和控制&#xff0c;基本上 Kubernetes的所有控制命令都发给它&#xff0c;它负责具体的执行过程&#xff0c;我们后 面执行的所有命 令基本都…

操作steam搬砖有哪些风险?你有中招吗?揭秘有没有规避技巧?

一、关于steam账号的地区问题&#xff1a; steam账号地区不要频繁的去更换&#xff0c;这样很容易导致让账号红信不能操作使用。 二、关于steam账号的充值问题&#xff1a; 一定要充值正规的礼品卡图&#xff0c;否则遇到黑卡分分钟让你的账号红锁&#xff0c;从而造成账号里…

EJB和Spring

1. EJB 1.1. 背景 功能日趋复杂的软件&#xff0c;如果把所有的功能实现都放在客户端&#xff0c;不仅代码没有安全性&#xff0c;部署及发布运维都会变的很复杂&#xff0c;所以将软件的功能实现分为客户端和服务端&#xff0c;服务端和客户端之间通过网络调用进行功能实现。…

【JavaScript】cookie

概述 cookie不可跨域 cookie存储在浏览器里面 cookie有数量与大小的限制 1、数量在50个左右 2、大小在4kb 左右 cookie的存储时间非常灵活 cookie不光可以服务器设置&#xff0c;客户端也可以设置 客户端 document.cookie 可以获取和写入&#xff0c;且只能设置一次&#…

Linux信号(处理)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 前言&#xff1a; Linux信号(产生)-CSDN博客 Linux信号(保存)-CSDN博客 前面我们解释了信号的产生和保存&#xff0c;接下来我们就要解释信号的处理&#xff0c;关于操作系统在合适的时候对信号进行处理&#xff0c;合适…

大白话!go语言中的指针、指针类型的方法接收器

go语言中的指针使用起来的比较简单。应用如下&#xff1a; 1.普通的对象取地址&#xff0c;获取对象值 符号&&#xff0c;取地址符&#xff0c;可以取变量的地址&#xff0c;或结构体对象的地址等。符号*&#xff0c;是从地址中取值&#xff08;根据栈中存储地址&#xf…