{"remainingRequest":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\views\\Normal\\components\\videoPlayerDH.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\views\\Normal\\components\\videoPlayerDH.vue","mtime":1710961694264},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\n/**\r\n * @description 自定义选择器\r\n * @param {string} str dom元素\r\n */\r\nfunction $(str) {\r\n if (str.charAt(0) == '#') {\r\n return document.getElementById(str.substring(1))\r\n } else if (str.charAt(0) == '.') {\r\n return document.getElementsByClassName(str.substring(1))\r\n } else {\r\n return document.getElementsByTagName(str)\r\n }\r\n}\r\nexport default {\r\n name: 'videoPlayerDH',\r\n props: {\r\n wrapperName: {\r\n type: String,\r\n default: 'h5-play-wrap',\r\n },\r\n showWdn: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n showFull: {\r\n type: Boolean,\r\n default: true,\r\n },\r\n },\r\n data() {\r\n return {\r\n curDeviceIndex: 0,\r\n deviceObject: {\r\n loginState: [],\r\n session: [],\r\n },\r\n $loginState: '',\r\n $stream: '',\r\n $volume: '',\r\n $canvas: '', //canvas播放视频DOM\r\n $video: '', //video播放视频DOM\r\n $canvas_ivs: '', //canvas绘图DOM\r\n $video_wrap: '', //视频外层Wrap\r\n $videoLoading: '', //“加载中...”提示\r\n player: null,\r\n playerInstance: [], //播放|回放实例数组\r\n channel: 0, //当前通道\r\n curEnlargeWnd: 0,\r\n onlineChannel: [], //当前成功拉流的视频通道数组\r\n WndIndex: 0, //宫格窗口Id\r\n ivsInstance: [], //canvas绘图实例数组\r\n curWndType: 1, //窗口分割类型\r\n }\r\n },\r\n created() {},\r\n mounted() {\r\n this.init()\r\n },\r\n beforeDestroy() {\r\n this.stopAll()\r\n },\r\n methods: {\r\n stopAll() {\r\n this.playerInstance.forEach((item) => {\r\n if (item) {\r\n item.close()\r\n item = null\r\n }\r\n })\r\n },\r\n play(videoData) {\r\n let {ip, cameraCode, dyAccount, dyPassword} = videoData\r\n if (this.playerInstance[this.WndIndex]) {\r\n this.playerInstance[this.WndIndex].close()\r\n this.playerInstance[this.WndIndex] = null\r\n console.log('停止')\r\n }\r\n let channel = cameraCode ? cameraCode : 1\r\n if (!dyAccount || !dyPassword) {\r\n this.$message.warning('摄像机数据获取失败!')\r\n }\r\n var options = {\r\n wsURL: `ws://${ip}/rtspoverwebsocket`,\r\n rtspURL: `rtsp://${ip}/cam/realmonitor?channel=${channel}&subtype=0&proto=Private3`,\r\n username: dyAccount,\r\n password: dyPassword,\r\n }\r\n this.$videoLoading.style.display = ''\r\n this.$videoLoading.innerText = '加载中...'\r\n let player = new PlayerControl(options)\r\n this.playerInstance[this.WndIndex] = player\r\n player.on('WorkerReady', () => {\r\n player.connect()\r\n this.$videoLoading.style.display = ''\r\n this.$videoLoading.innerText = '连接中...'\r\n })\r\n player.on('PlayStart', () => {\r\n this.$videoLoading.style.display = 'none'\r\n this.$videoLoading.innerText = ''\r\n })\r\n player.on('Error', (rs) => {\r\n console.log(rs, rs.description, 'error')\r\n let message = '打开失败!'\r\n if (rs.description) message = rs.description\r\n if (rs.errorCode == 101) message = ''\r\n this.$videoLoading.style.display = ''\r\n this.$videoLoading.innerText = message\r\n })\r\n player.init(this.$canvas, this.$video)\r\n },\r\n stop() {\r\n this.playerInstance[this.WndIndex].close()\r\n },\r\n /**\r\n * @description 初始化\r\n */\r\n init() {\r\n let initWidth = '50%'\r\n if (!this.showWdn) {\r\n initWidth = '100%'\r\n }\r\n let videoStr = ''\r\n for (var i = 0; i < 16; i++) {\r\n videoStr +=\r\n '