vue中使用海康插件实现视频监控-流不稳定导致视频断开前端解决办法
配置和启用海康插件详情看本人博客
链接:https://blog.csdn.net/jinglianglove/article/details/102599229
想要视频播放自动重启得知道他断开得状态
海康web插件V1.3.0开发指南告诉你
“0x0300(768)-开始播放 0x0301(769)-播
放 失 败 ( 指 发 起 请 求 失 败 )
0x0302(770)-播放异常(指取流或解码
过程中的异常),0x0330(816)-播放结束‘
所有你只需找到那里有监听这个记录得地方就可以处理这一切得状态了。
处理代码如下:主要方法就是cbIntegrationCallBack()
// 推送消息
cbIntegrationCallBack(oData) {
let sss=3 //标记
//播放异常的话就重新执行一遍
if(JSON.parse(oData.responseMsg.msg).result==770||JSON.parse(oData.responseMsg.msg).result==769){
clearTimeout(this.setTime)
this.setTime = setTimeout(() => {
this.pointCode=JSON.parse(oData.responseMsg.msg).cameraIndexCode
let wndIdVal=JSON.parse(oData.responseMsg.msg).wndId
this.sss=777
this.startpreview(wndIdVal)
}, 5000);
}
//如果当前执行成功了那么就清除定时,重置标记
if(JSON.parse(oData.responseMsg.msg).result==768 && this.sss==777){
clearTimeout(this.setTime)
console.log('关闭定时')
this.sss=3 //重置标记
}
/* showCBInfo(JSON.stringify(oData.responseMsg)); */
},
播放得方法得指定窗口播放,要不然你不知道会刷新哪一个窗口
//视频“预览”功能
startpreview(wndIdVal) {
let pointCode = this.pointCode;
let cameraIndexCode = pointCode; //获取输入的监控点编号值,必填
let streamMode = this.streamType; //主子码流标识:0-主码流,1-子码流
let transMode = this.transMode; //传输协议:0-UDP,1-TCP
let gpuMode = 0; //是否启用GPU硬解,0-不启用,1-启用
let wndId = wndIdVal; //播放窗口序号(在2x2以上布局下可指定播放窗口)
// let wndId = -1; //播放窗口序号(在2x2以上布局下可指定播放窗口)
cameraIndexCode = cameraIndexCode.replace(/(^\s*)/g, "");
cameraIndexCode = cameraIndexCode.replace(/(\s*$)/g, "");
this.oWebControl.JS_RequestInterface({
funcName: "startPreview",
argument: JSON.stringify({
cameraIndexCode: cameraIndexCode, //监控点编号
streamMode: streamMode, //主子码流标识
transMode: transMode, //传输协议
gpuMode: gpuMode, //是否开启GPU硬解
wndId: wndId //可指定播放窗口
})
}).then(res=>{
// console.log('yulan',res)
})
},