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)
})
},