【Uni

您所在的位置:网站首页 h5player 【Uni

【Uni

2024-07-15 21:58| 来源: 网络整理| 查看: 265

uni-app 海康h5player接入ws视频流

内容简介 采用uni-app中的renderjs 引入海康H5 SDK 后端接入海康综合安防平台的开放API获取预览流 海康H5 SDK 下载地址

接入原因 因在移动端接入不管是hls flv rtsp rtmp流的播放稳定性和速度均很慢,特采用ws直连流来播放,效率很稳定性均显著提高。因采用前者流可以直接使用原生的播放组件,所以会比较便捷不用进行封装。后者ws流需要引入专用开发包。 海康官网也提供了其它的SDK比如直连摄像头的,但是需要映射多个摄像头或者单独的硬盘录像机,接入方式也是采用renderjs的办法接入。而我们采购了安防平台提供了开放API所以采用接口的形式获取。

准备工作 下载开发包放置项目static目录下 在这里插入图片描述

源码如下 引入h5player.min.js 注意点 src地址要采用相对路径。 JS部分 此处代码均在renderjs中 renderjs使用方法请研究官网示例或看掘金中这位大哥的用法 地址

mounted(){ if (typeof window.JSPlugin === 'function') { this.intWindow(); } else { const script = document.createElement('script') script.src = 'static/HK/h5player.min.js' //h5player.min.js 相对路径 script.onload = this.intWindow.bind(this) document.head.appendChild(script) }; }, methods:{ // 初始化播放窗口 intWindow(){ let that = this; this.rPlay = new JSPlugin({ szId: "play_window", //需要英文字母开头 必填 szBasePath: "static/HK", // 必填,引用H5player.min.js的js相对路径 oStyle: { border: "none", borderSelect: "none", background: "#000", } }); }, // 接收逻辑层发送的播放地址 receiveUrl(newValue, oldValue, ownerVm, vm) { let that = this if(newValue.url){ let playUrl = newValue.url that.rPlay.JS_Play(playUrl,{ playURL:playUrl, }).then( ()=>{ that.$ownerInstance.callMethod('playStatus',{ type:"success", msg:"播放成功" }) }, (e)=>{ that.loading = false; that.$ownerInstance.callMethod('playStatus',{ type:"error", msg:e }) } ) } } }

Html代码如下 因为是单独抽了的播放组件 所以播放地址是从外部传递过来的,故使用watch监听一下,如果是在一个组件里面只用获取到播放地址后直接给player中的url赋值即可

//此处js代码均在逻辑层中 //播放窗口dom元素 高度 info:player 用来传递播放地址 stop:stopPlay 用来控制销毁播放器 其它方法请自行封装原理类似 data() { return { //接收播放地址 player:{ url:"" }, //销毁播放窗口状态 stopPlay:false, } }, methods:{ playStatus(val){ if(val.type === 'success'){ console.log('播放成功'); }else{ console.log('播放失败') console.log(val.msg) } }, } watch:{ playUrl(newValue,oldValue){ if(newValue){ this.loading = true; this.player.url = newValue; } } }

最终效果图如下:

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3