当前位置: 首页 > news >正文

Jessibuca 插件播放直播流视频

jessibuca官网:http://jessibuca.monibuca.com/player.html
git地址:https://gitee.com/huangz2350_admin/jessibuca#https://gitee.com/link?target=http%3A%2F%2Fjessibuca.monibuca.com%2F
项目需要的文件
在这里插入图片描述
在这里插入图片描述

1.播放组件

<template ><div id="jessibuca" style="width: auto; height: auto; position: relative" @mouseover="showbtn"><div :id="'container' + index" ref="container" :style="'position: relative;width: 100%; height:' +height +'; background:url(' +  background +') no-repeat;background-size: 100% 100%;background-color: #000;'" @dblclick="fullscreenSwich"><div :id="'buttonsBox' + index" class="buttons-box" style="position: absolute; left: 0; bottom: 0"><div class="buttons-box-left"><i v-if="!playing" class="iconfont icon-play jessibuca-btn" @click="playBtnClick" /><i v-if="playing" class="iconfont icon-pause jessibuca-btn" @click="pause" /><i class="iconfont icon-stop jessibuca-btn" @click="destroy" /><i v-if="isNotMute" class="iconfont icon-audio-high jessibuca-btn" @click="jessibuca.mute()" /><i v-if="!isNotMute" class="iconfont icon-audio-mute jessibuca-btn" @click="jessibuca.cancelMute()" /></div><div class="buttons-box-right"><span class="jessibuca-btn">{{ kBps }} kb/s</span><!--          <i class="iconfont icon-file-record1 jessibuca-btn"></i>--><!--          <i class="iconfont icon-xiangqing2 jessibuca-btn" ></i>--><i class="iconfont icon-camera1196054easyiconnet jessibuca-btn"@click="jessibuca.screenshot('截图', 'png', 0.5)" /><i class="iconfont icon-shuaxin11 jessibuca-btn" @click="playBtnClick" /><i v-if="!fullscreen" class="iconfont icon-weibiaoti10 jessibuca-btn" @click="fullscreenSwich" /><i v-if="fullscreen" class="iconfont icon-weibiaoti11 jessibuca-btn" @click="fullscreenSwich" /></div></div></div><div v-if="!playing && !autoplay" class="btn-image" :style="'height:' + height"><div class="btn-image-center" @click="playBtnClick" :style="'width:' +btnimageW +';height: ' +btnimageH +';background:url(' +btnimage +') no-repeat;background-size: 100% 100%;'"></div></div></div>
</template><script>
/* eslint-disable no-underscore-dangle */
export default {name: 'Jessibuca',props: {index: {//indextype: Number,default: 0,},videoUrl: {//播放地址type: String,default: '',},error: {//报错信息type: Function,default: null,},hasAudio: {//静音type: Boolean,default: false,},height: {//播放器高度type: String,default: '500px',},isFullResize: {//播放面即是否填充满容器type: Boolean,default: true,},autoplay: {//是否自动播放type: Boolean,default: false,},background: {//封面图type: String,default: '',},btnimage: {//播放器按钮图片type: String,default: 'data:image/png;base64,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',},btnimageH: {//播放器按钮图片高度type: String,default: '60px',},btnimageW: {//播放器按钮图片宽度type: String,default: '60px',},},data() {return {jessibuca: null,playing: false,isNotMute: false,quieting: false,fullscreen: false,loaded: false, // mutespeed: 0,performance: '', // 工作情况kBps: 0,btnDom: null,videoInfo: null,volume: 1,rotate: 0,vod: true, // 点播forceNoOffscreen: false,}},watch: {videoUrl: {handler(newData, oldData) {if (!this.autoplay && !oldData) returnthis.play(newData)},},},mounted() {window.onerror = (msg) => {// console.error(msg)}const paramUrl = decodeURIComponent(this.$route.params.url)this.$nextTick(() => {if (typeof this.videoUrl === 'undefined') {this.videoUrl = paramUrl}this.btnDom = document.getElementById('buttonsBox' + this.index)console.log(`初始化时的地址为: ${this.videoUrl}`)this.autoplay ? this.play(this.videoUrl) : ''})},destroyed() {if (this.jessibuca) {this.jessibuca.destroy()}this.playing = false// this.loaded = falsethis.performance = ''},methods: {create() {const options = {}console.log(this.$refs.container)console.log(`hasAudio  ${this.hasAudio}`)this.jessibuca = new window.Jessibuca(Object.assign({container: this.$refs.container,videoBuffer: 0.5, // 最大缓冲时长,单位秒isResize: true,isFlv: true,decoder: '/js/jessibuca/index.js',// text: "WVP-PRO",// background: "bg.jpg",loadingText: '加载中',hasAudio:typeof this.hasAudio === 'undefined' ? true : this.hasAudio,debug: false,supportDblclickFullscreen: false, // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。operateBtns: {fullscreen: false,screenshot: false,play: false,audio: false,},record: 'record',isFullResize: this.isFullResize || false,vod: this.vod,forceNoOffscreen: this.forceNoOffscreen,isNotMute: this.isNotMute,},options))// eslint-disable-next-line no-underscore-dangleconst _this = thisthis.jessibuca.on('load', () => {console.log('on load init')})this.jessibuca.on('log', (msg) => {console.log('on log', msg)})this.jessibuca.on('record', (msg) => {console.log('on record:', msg)})this.jessibuca.on('pause', () => {_this.playing = false})this.jessibuca.on('play', () => {_this.playing = true})this.jessibuca.on('fullscreen', (msg) => {console.log('on fullscreen', msg)_this.fullscreen = msg})this.jessibuca.on('mute', (msg) => {console.log('on mute', msg)_this.isNotMute = !msg})this.jessibuca.on('audioInfo', (msg) => {// console.log("audioInfo", msg);})this.jessibuca.on('videoInfo', function (msg) {this.videoInfo = msg// console.log("videoInfo", msg);})this.jessibuca.on('bps', (bps) => {// console.log('bps', bps);})// eslint-disable-next-line no-unused-varslet _ts = 0this.jessibuca.on('timeUpdate', (ts) => {// console.log('timeUpdate,old,new,timestamp', _ts, ts, ts - _ts);_ts = ts})this.jessibuca.on('videoInfo', (info) => {console.log('videoInfo', info)})this.jessibuca.on('error', (error) => {console.log('error', error)})this.jessibuca.on('timeout', () => {console.log('timeout')})this.jessibuca.on('start', () => {console.log('start')})this.jessibuca.on('performance', (performance) => {let show = '卡顿'if (performance === 2) {show = '非常流畅'} else if (performance === 1) {show = '流畅'}_this.performance = show})this.jessibuca.on('buffer', (buffer) => {// console.log('buffer', buffer);})this.jessibuca.on('stats', (stats) => {// console.log('stats', stats);})this.jessibuca.on('kBps', (kBps) => {_this.kBps = Math.round(kBps)})// 显示时间戳 PTSthis.jessibuca.on('videoFrame', () => { })//this.jessibuca.on('metadata', () => { })},playBtnClick(event) {this.play(this.videoUrl)},play(url) {if (!url || url.length == 0) {this.$message.warning('当前摄像头出错,请稍后重试')this.pause()return}if (this.jessibuca) {this.destroy()}this.create()this.jessibuca.on('play', () => {this.playing = true// this.loaded = true// this.quieting = this.jessibuca.quieting})if (this.jessibuca.hasLoaded()) {this.jessibuca.play(url)} else {this.jessibuca.on('load', () => {console.log('load 播放')this.jessibuca.play(url)})}},pause() {if (this.jessibuca) {this.jessibuca.pause()}this.playing = falsethis.err = ''this.performance = ''},destroy() {if (this.jessibuca) {this.jessibuca.destroy()}if (document.getElementById('buttonsBox' + this.index) == null) {document.getElementById('container' + this.index).appendChild(this.btnDom)}this.jessibuca = nullthis.playing = falsethis.err = ''this.performance = ''},showbtn() {if (document.getElementById('buttonsBox' + this.index) == null) {document.getElementById('container' + this.index).appendChild(this.btnDom)}},eventcallbacK(type, message) {// console.log("player 事件回调")// console.log(type)// console.log(message)},fullscreenSwich() {const isFull = this.isFullscreen()this.jessibuca.setFullscreen(!isFull)this.fullscreen = !isFull},isFullscreen() {return (document.fullscreenElement ||document.msFullscreenElement ||document.mozFullScreenElement ||document.webkitFullscreenElement ||false)},},
}
</script><style>
@font-face {font-family: 'iconfont';/* Project id 1291092 */src: url('iconfont.woff2') format('woff2');
}.iconfont {font-family: 'iconfont' !important;font-size: 16px;font-style: normal;-webkit-font-smoothing: antialiased;-moz-osx-font-smoothing: grayscale;
}.icon-play:before {content: '\e603';
}.icon-pause:before {content: '\e6c6';
}.icon-stop:before {content: '\e6a8';
}.icon-audio-high:before {content: '\e793';
}.icon-audio-mute:before {content: '\e792';
}.icon-shuaxin11:before {content: '\e720';
}.icon-weibiaoti10:before {content: '\e78f';
}.icon-weibiaoti11:before {content: '\e790';
}.icon-camera1196054easyiconnet:before {content: '\e791';
}.buttons-box {width: 100%;height: 0px;transition: 0.4s;background-color: rgba(43, 51, 63, 0.7);display: -webkit-box;display: -ms-flexbox;display: flex;user-select: none;z-index: 100;display: flex;align-items: center;overflow: hidden;
}#jessibuca:hover .buttons-box {height: 40px;
}.buttons-box-left {display: flex;flex: 1;align-items: center;
}.jessibuca-btn {color: rgb(255, 255, 255);line-height: 27px;margin: 0px 5px;padding: 0px 2px;cursor: pointer;text-align: center;font-size: 20px !important;
}.buttons-box-right {height: 100%;position: absolute;right: 0;display: flex;flex: 1;align-items: center;font-size: 20px;
}.btn-image {width: 100%;/* height: 100%; */position: absolute;left: 0;top: 0;z-index: 99 !important;
}.btn-image-center {position: absolute;left: 0;right: 0;bottom: 0;top: 0;margin: auto;
}
</style>
.jessibuca-btn 设置播放控件的间距
decoder: '/js/jessibuca/index.js',地址是服务静态文件的相对地址src: url('iconfont.woff2') format('woff2'); 相对地址 iconfont.woff2需要和组件放在同一目录下

2.父组件引用

<template><div class="app-container"><player video-url="视频地址" :has-audio="false" height="200px" :isFullResize="false" :autoplay="true":index="getIndex" /></div>
</template>
<script>
import player from '@/components/jessibuca/index.vue' // h265播放器export default {name: 'video',components: {player,},data() {return {}},computed: {// 获取时间戳getIndex() {let time = new Date().getTime()return time},},
}
</script>

3.index.html 需要引入静态js文件

<script src="./public/js/jessibuca/index.js"></script>

相关文章:

Jessibuca 插件播放直播流视频

jessibuca官网&#xff1a;http://jessibuca.monibuca.com/player.html git地址&#xff1a;https://gitee.com/huangz2350_admin/jessibuca#https://gitee.com/link?targethttp%3A%2F%2Fjessibuca.monibuca.com%2F 项目需要的文件 1.播放组件 <template ><div i…...

【Docker】03 容器操作

文章目录 一、流转图二、基本操作2.1 查看本地容器进程2.2 启动容器2.2.1 交互式启动容器2.2.2 后台启动容器 2.3 进入容器2.4 停止启动重启容器2.5 退出容器2.6 删除容器2.7 提交容器&#xff08;打包成镜像&#xff09;2.8 拷贝文件2.8.1 拷贝容器内文件到宿主机2.8.2 拷贝宿…...

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章

Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件&#xff0c;是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window&#xff1a;用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…...

什么是芯片委外管理系统? 及其主要作用

随着半导体产业的飞速发展&#xff0c;芯片制造企业面临着日益复杂的生产和管理挑战。为了应对这些挑战&#xff0c;许多企业选择将部分生产环节委托给外部厂商进行&#xff0c;这种合作模式被称为“委外加工”。而为了有效地管理和协调这一合作模式&#xff0c;便诞生了“芯片…...

【实战-08】 flink自定义Map中的变量的行为

场景 自定义Map或者别的算子的时候&#xff0c;有时候需要定义一些类变量&#xff0c;在flink内部高并发的情况下需要正确理解这些变量的行为 代码 package com.pg.function;import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common…...

Docker Volume

"Ice in my vein" Docker Volume(存储卷) 什么是存储卷? 存储卷就是: “将宿主机的本地文件系统中存在的某个目录&#xff0c;与容器内部的文件系统上的某一目录建立绑定关系”。 存储卷与容器本身的联合文件系统&#xff1f; 在宿主机上的这个与容器形成绑定关系…...

开源计算机视觉库OpenCV常用的API介绍

阅读本文之前请参阅-----开源计算机视觉库OpenCV详细介绍 OpenCV&#xff08;开源计算机视觉库&#xff09;是一个跨平台的计算机视觉和机器学习软件库&#xff0c;它提供了大量的API&#xff08;应用程序编程接口&#xff09;&#xff0c;用于处理图像和视频分析、对象检测、面…...

pytorch -- torch.nn下的常用损失函数

1.基础 loss function损失函数&#xff1a;预测输出与实际输出 差距 越小越好 - 计算实际输出和目标之间的差距 - 为我们更新输出提供依据&#xff08;反向传播&#xff09; 1. L1 torch.nn.L1Loss(size_averageNone, reduceNone, reduction‘mean’) 2. 平方差&#xff08;…...

daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具

daydayEXP: 支持自定义Poc文件的图形化漏洞利用工具 基于java fx写的一款支持加载自定义poc文件的、可扩展的的图形化渗透测试框架。支持批量漏洞扫描、漏洞利用、结果导出等功能。 使用 经过测试,项目可在jdk8环境下正常使用。jdk11因为缺少一些必要的组件,所以jdk11版本工…...

无法访问云服务器上部署的Docker容器(二)

说明&#xff1a;记录一次使用公网IP 接口地址无法访问阿里云服务接口的问题&#xff1b; 描述 最近&#xff0c;我使用Docker部署了jeecg-boot项目&#xff0c;部署过程都没有问题&#xff0c;也没有错误信息。部署完成后&#xff0c;通过下面的地址访问后端Swagger接口文档…...

在Pycharm中运行Django项目如何指定运行的端口

方法步骤&#xff1a; 打开 PyCharm&#xff0c;选择你的 Django 项目。在菜单栏中&#xff0c;选择 “Run” -> “Edit Configurations...”。在打开的 “Run/Debug Configurations” 对话框中&#xff0c;选择你的 Django server 配置&#xff08;如果没有&#xff0c;你…...

Android将 ViewBinding封装到BaseActivity基类中(Java版)

在Android中使用Java语言将ViewBinding封装到基类中&#xff0c;操作步骤如下&#xff1a; 1、在项目的build.gradle文件中启用了ViewBinding&#xff0c;添加以下代码&#xff1a; android {...buildFeatures {viewBinding true} } 2、创建一个名为“BaseActivity”的基类&…...

JSP实现数据传递与保存(一)

一、Web开发步骤 1.1两类模式 后端——————前端 先有前端&#xff0c;前端用的时候直接调用 后端已实现注册接口&#xff0c;接口名为doRegister.jsp 前端此时&#xff1a; 前端的form表单中的action提交地址就只能填doRegister.jsp&#xff0c;即&#xff1a; <f…...

【论文笔记之 YIN】YIN, a fundamental frequency estimator for speech and music

本文对 Alain de Cheveigne 等人于 2002 年在 The Journal of the Acoustical Society of America 上发表的论文进行简单地翻译。如有表述不当之处欢迎批评指正。欢迎任何形式的转载&#xff0c;但请务必注明出处。 论文链接&#xff1a;http://audition.ens.fr/adc/pdf/2002_…...

水印相机小程序源码

水印相机前端源码&#xff0c;本程序无需后端&#xff0c;前端直接导入即可&#xff0c;没有添加流量主功能&#xff0c;大家开通后自行添加 源码搜索&#xff1a;源码软件库 注意小程序后台的隐私权限设置&#xff0c;前端需要授权才可使用 真实时间地址拍照记录&#xff0c…...

NXP实战笔记(八):S32K3xx基于RTD-SDK在S32DS上配置LCU实现ABZ解码

目录 1、概述 2、SDK配置 2.1、IO配置 2.2、TRGMUX配置 2.3、LCU配置 2.4、Trgmux配置 2.5、Emios配置 2.6、代码实现 1、概述 碰到光电编码器、磁编码器等,有时候传出来的位置信息为ABZ的方式,在S32K3里面通过TRGMUX、LCU、Emios结合的方式可以实现ABZ解码。 官方…...

【深度好文】simhash文本去重流程

对于类似于头条客户端而言,推荐的每一刷的新闻都必须是不同的新闻,这就需要对新闻文本进行排重。传统的去重一般是对文章的url链接进行排重,但是对于抓取的网页来说,各大平台的新闻可能存在重复,对于只通过文章url进行排重是不靠谱的,为了解决这个痛点于是就提出了用simh…...

主流的开发语言和开发环境介绍

个人浅见&#xff0c;不喜勿喷&#xff0c;谢谢 软件开发是一个涉及多个方面的复杂过程&#xff0c;其中包括选择合适的编程语言和开发环境。编程语言是软件开发的核心&#xff0c;它定义了程序员用来编写指令的语法和规则。而开发环境则提供了编写、测试和调试代码的工具和平台…...

List去重有几种方式

目录 1、for循环添加去重 2、for 双循环去重 3、for 双循环重复坐标去重 4、Set去重 5、stream流去重 1、for循环添加去重 List<String> oldList new ArrayList<>();oldList.add("张三");oldList.add("张三");oldList.add("李四&q…...

使用C#+NPOI进行Excel处理,实现多个Excel文件的求和统计

一个简易的控制台程序&#xff0c;使用C#NPOI进行Excel处理&#xff0c;实现多个Excel文件的求和统计。 前提&#xff1a; 待统计的Excel格式相同统计结果表与待统计的表格格式一致 引入如下四个动态库&#xff1a; 1. NPOI.dll 2. NPOI.OOXML.dll 3. NPOI.OpenXml4Net.dll …...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

论文阅读:Matting by Generation

今天介绍一篇关于 matting 抠图的文章&#xff0c;抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法&#xff0c;已经有很多的工作和这个任务相关。这两年 diffusion 模型很火&#xff0c;大家又开始用 diffusion 模型做各种 CV 任务了&am…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

Python学习(8) ----- Python的类与对象

Python 中的类&#xff08;Class&#xff09;与对象&#xff08;Object&#xff09;是面向对象编程&#xff08;OOP&#xff09;的核心。我们可以通过“类是模板&#xff0c;对象是实例”来理解它们的关系。 &#x1f9f1; 一句话理解&#xff1a; 类就像“图纸”&#xff0c;对…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001

qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类&#xff0c;直接把源文件拖进VS的项目里&#xff0c;然后VS卡住十秒&#xff0c;然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分&#xff0c;导致编译的时候找不到了。因…...

6.9本日总结

一、英语 复习默写list11list18&#xff0c;订正07年第3篇阅读 二、数学 学习线代第一讲&#xff0c;写15讲课后题 三、408 学习计组第二章&#xff0c;写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语&#xff1a;复习l默写sit12list17&#…...

深入浅出JavaScript中的ArrayBuffer:二进制数据的“瑞士军刀”

深入浅出JavaScript中的ArrayBuffer&#xff1a;二进制数据的“瑞士军刀” 在JavaScript中&#xff0c;我们经常需要处理文本、数组、对象等数据类型。但当我们需要处理文件上传、图像处理、网络通信等场景时&#xff0c;单纯依赖字符串或数组就显得力不从心了。这时&#xff…...

7种分类数据编码技术详解:从原理到实战

在数据分析和机器学习领域&#xff0c;分类数据&#xff08;Categorical Data&#xff09;的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型&#xff0c;如性别&#xff08;男/女&#xff09;、颜色&#xff08;红/绿/蓝&#xff09;或产品类…...

TI德州仪器TPS3103K33DBVR低功耗电压监控器IC电源管理芯片详细解析

1. 基本介绍 TPS3103K33DBVR 是 德州仪器&#xff08;Texas Instruments, TI&#xff09; 推出的一款 低功耗电压监控器&#xff08;Supervisor IC&#xff09;&#xff0c;属于 电源管理芯片&#xff08;PMIC&#xff09; 类别&#xff0c;主要用于 系统复位和电压监测。 2. …...