8da7f2f7d7ebcdb8fe6ac7d3d644b81d.json 23 KB

1
  1. {"remainingRequest":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\dm\\HHHT-fbky\\hhht_fbky\\src\\components\\HelloWorld.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\src\\components\\HelloWorld.vue","mtime":1740992927934},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1740991511838},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\babel-loader\\lib\\index.js","mtime":1740991520080},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1740991511838},{"path":"D:\\dm\\HHHT-fbky\\hhht_fbky\\node_modules\\vue-loader\\lib\\index.js","mtime":1740991518721}],"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// import BaseDragDialog from \"@/components/BaseDragDialog/BG_4.vue\";\n// import { mapGetters } from \"vuex\";\n// import { customPageGetList } from \"@/API/znxj\";\n// import CanvasVideo from \"@/components/ImageVideo/CanvasVideo.vue\";\n// import Fbky from \"./Fbky.vue\";\nimport {\n\trtcHelper\n} from '@/assets/js/tr_webrtc.min.js'\nexport default {\n\tname: \"PipelineAnimate\",\n\t// components: { BaseDragDialog, Fbky, CanvasVideo },\n\tcomputed: {\n\t\t// ...mapGetters([\"rtcHelper\", \"amplificationVisible\"]),\n\t},\n\tdata() {\n\t\treturn {\n\t\t\twebSocketParams: {\n\t\t\t\tadmin: \"8889\",\n\t\t\t\tpassword: \"123456\",\n\t\t\t\turl: \"wss://172.10.10.61:1443/webrtc\",\n\t\t\t\tlocalIp: \"\",\n\t\t\t\tautoReg: true,\n\t\t\t\tautoAnswer: false,\n\t\t\t},\n\t\t\tringNumber: 111,\n\t\t\tcallDisable: false,\n\t\t\topenningTile: \"离线\",\n\t\t\tcallDisable: false,\n\t\t\tcameraInfo: null,\n\t\t\tmic: \"\", //麦克风选择\n\t\t\tcam: \"\", //摄像头选择\n\t\t\tspeak: \"\", //扬声器选择\n\t\t\tcallback: {\n\t\t\t\tonRinging: function(d) {\n\t\t\t\t\t// 来电\n\t\t\t\t\tthis.onRinging(d);\n\t\t\t\t},\n\t\t\t\tonCalling: function(d) {\n\t\t\t\t\t// 外呼\n\t\t\t\t\tthis.onCalling(d);\n\t\t\t\t},\n\t\t\t\tonAnswer: function(d) {\n\t\t\t\t\t// 通话中\n\t\t\t\t\tthis.onAnswer(d);\n\t\t\t\t},\n\t\t\t\tonHangup: function(d) {\n\t\t\t\t\t// 挂机\n\t\t\t\t\tthis.onHangup(d);\n\t\t\t\t},\n\t\t\t\tonLogin: function(d) {\n\t\t\t\t\t//登录回调\n\t\t\t\t\tconsole.log(\"登录状态在线回调\");\n\t\t\t\t\tdocument\n\t\t\t\t\t\t.getElementById(\"off_status\")\n\t\t\t\t\t\t.setAttribute(\"hidden\", \"hidden\");\n\t\t\t\t\tdocument.getElementById(\"on_status\").removeAttribute(\"hidden\");\n\t\t\t\t\tlocalStorage.setItem(\"fbkyType\", \"在线\");\n\t\t\t\t\t// this.upOpenningTile(\"在线\");\n\t\t\t\t\tthis.openningTile = \"在线\";\n\t\t\t\t},\n\t\t\t\tonLogout: function() {\n\t\t\t\t\t//登出回调\n\t\t\t\t\tconsole.log(\"登出状态离线回调\");\n\t\t\t\t\tdocument.getElementById(\"on_status\").setAttribute(\"hidden\", \"hidden\");\n\t\t\t\t\tdocument.getElementById(\"off_status\").removeAttribute(\"hidden\");\n\t\t\t\t\tlocalStorage.setItem(\"fbkyType\", \"离线\");\n\t\t\t\t\t// this.upOpenningTile(\"离线\");\n\t\t\t\t\tthis.openningTile = \"离线\";\n\t\t\t\t},\n\t\t\t},\n\t\t\t// 关联摄像头id列表\n\t\t\tcameraList: [],\n\t\t\tcameraId: {},\n\t\t};\n\t},\n\tmounted() {},\n\tcreated() {\n\t\t// this.getCameraList();\n\t\t// this.initMediaDevices();\n\t\t// setTimeout(() => {\n\t\t// this.initPerimeter();\n\t\t// }, 500);\n\t},\n\tdestroyed() {\n\t\t// this.callHangupAll();\n\t\t// setTimeout(() => {\n\t\t// this.webRtcLogout();\n\t\t// }, 500);\n\t},\n\tmethods: {\n\t\t// 连接防爆扩音\n\t\tFbkyConnect() {\n\t\t\t// this.openningTile = \"在线\"\n\t\t\tthis.initMediaDevices();\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.initPerimeter();\n\t\t\t}, 500);\n\t\t},\n\t\t// 断开防爆扩音\n\t\tFbkyBreak() {\n\t\t\tthis.openningTile = \"离线\";\n\t\t\tthis.callHangupAll();\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.webRtcLogout();\n\t\t\t}, 500);\n\t\t},\n\t\t// 呼出通话\n\t\tFbkyDial() {\n\t\t\t// 语音呼出\n\t\t\trtcHelper.rtcDial(this.ringNumber, false);\n\t\t},\n\t\t// 挂断通话\n\t\tFbkyHangUp() {},\n\t\tupOpenningTile(val) {\n\t\t\tthis.openningTile = val;\n\t\t},\n\t\t//挂断所有通话\n\t\tcallHangupAll() {\n\t\t\trtcHelper.rtcHangupAll();\n\t\t},\n\t\tgetVideoDiv() {\n\t\t\t// return document.getElementById(\"peerTag\").value;\n\t\t\treturn \"video1\";\n\t\t},\n\t\topenAll() {\n\t\t\t// this.ringNumber = \"110\";\n\t\t\tthis.ringNumber = \"111\";\n\t\t\tthis.callDisable = true;\n\t\t},\n\t\tcloseAll() {\n\t\t\tthis.callDisable = false;\n\t\t\tthis.openningTile = \"暂无\";\n\t\t\tthis.cameraInfo = null;\n\t\t},\n\t\thandleClose() {\n\t\t\t// this.$store.dispatch(\"home/toggleAmplificationVisible\");\n\t\t},\n\t\t//载入参数登录\n\t\tinitPerimeter() {\n\t\t\tif (\n\t\t\t\t!this.webSocketParams.admin ||\n\t\t\t\t!this.webSocketParams.password ||\n\t\t\t\t!this.webSocketParams.url\n\t\t\t) {\n\t\t\t\talert(\"请填写必填参数\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// 缓存配置\n\t\t\tlocalStorage.verto_login = this.webSocketParams.admin; //分机账号\n\t\t\tlocalStorage.verto_password = this.webSocketParams.password; //分机密码\n\t\t\tlocalStorage.verto_socketUrl = this.webSocketParams.url; //webSocketURL\n\t\t\tlocalStorage.verto_localIp = this.webSocketParams.localIp;\n\t\t\tlocalStorage.verto_autoReg = this.webSocketParams.autoReg; //自动登录开关\n\t\t\tlocalStorage.verto_autoAnswer = this.webSocketParams.autoAnswer; //自动接听开关\n\t\t\trtcHelper.bootstrap(\n\t\t\t\tthis.webSocketParams.admin,\n\t\t\t\tthis.webSocketParams.password,\n\t\t\t\tthis.webSocketParams.url,\n\t\t\t\tthis.webSocketParams.localIp,\n\t\t\t\tthis.getVideoDiv(),\n\t\t\t\t\"local_video\",\n\t\t\t\tthis.callback,\n\t\t\t\tthis.mic,\n\t\t\t\tthis.speak,\n\t\t\t\tthis.cam\n\t\t\t);\n\t\t},\n\t\t//登出\n\t\twebRtcLogout() {\n\t\t\ttry {\n\t\t\t\trtcHelper.rtcLogout();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e);\n\t\t\t}\n\t\t},\n\t\t//获取音视频设备\n\t\tinitMediaDevices() {\n\t\t\trtcHelper.getMediaDevices().then((result) => {\n\t\t\t\ttry {\n\t\t\t\t\tlet microphone = result.audioInputDevices; //麦克风\n\t\t\t\t\tlet camera = result.videoDevices; //摄像头+\n\t\t\t\t\tlet loudspeaker = result.audioOutputDevices; //扬声器\n\t\t\t\t\tlet microphoneStr = \"\";\n\t\t\t\t\tlet cameraStr = \"\";\n\t\t\t\t\tlet loudspeakerStr = \"\";\n\t\t\t\t\t// for (let i = 0; i < microphone.length; i++) {\n\t\t\t\t\t// microphoneStr +=\n\t\t\t\t\t// '<option value=\"' +\n\t\t\t\t\t// microphone[i].deviceId +\n\t\t\t\t\t// '\">' +\n\t\t\t\t\t// microphone[i].label +\n\t\t\t\t\t// \"</option>\";\n\t\t\t\t\t// }\n\t\t\t\t\t// document.getElementById(\"audioInputDev\").innerHTML = microphoneStr;\n\t\t\t\t\t// for (let i = 0; i < camera.length; i++) {\n\t\t\t\t\t// cameraStr +=\n\t\t\t\t\t// '<option value=\"' +\n\t\t\t\t\t// microphone[i].deviceId +\n\t\t\t\t\t// '\">' +\n\t\t\t\t\t// camera[i].label +\n\t\t\t\t\t// \"</option>\";\n\t\t\t\t\t// }\n\t\t\t\t\t// document.getElementById(\"videoInputDev\").innerHTML = cameraStr;\n\t\t\t\t\t// for (let i = 0; i < loudspeaker.length; i++) {\n\t\t\t\t\t// loudspeakerStr +=\n\t\t\t\t\t// '<option value=\"' +\n\t\t\t\t\t// microphone[i].deviceId +\n\t\t\t\t\t// '\">' +\n\t\t\t\t\t// loudspeaker[i].label +\n\t\t\t\t\t// \"</option>\";\n\t\t\t\t\t// }\n\t\t\t\t\t// document.getElementById(\"audioOutputDev\").innerHTML = loudspeakerStr;\n\t\t\t\t\tif (microphone.length > 0) {\n\t\t\t\t\t\tthis.mic = microphone[0].deviceId;\n\t\t\t\t\t}\n\t\t\t\t\tif (camera.length > 0) {\n\t\t\t\t\t\tthis.cam = camera[0].deviceId;\n\t\t\t\t\t}\n\t\t\t\t\tif (loudspeaker.length > 0) {\n\t\t\t\t\t\tthis.speak = loudspeaker[0].deviceId;\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(\"音视频设备:\", result, this.mic, this.cam, this.speak);\n\t\t\t\t} catch (e) {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t}\n\t\t\t\t// 自动登录\n\t\t\t\t// if (\n\t\t\t\t// localStorage.verto_autoReg == \"true\" &&\n\t\t\t\t// localStorage.verto_login &&\n\t\t\t\t// localStorage.verto_password &&\n\t\t\t\t// localStorage.verto_socketUrl\n\t\t\t\t// ) {\n\t\t\t\t// this.initPerimeter();\n\t\t\t\t// }\n\t\t\t});\n\t\t},\n\t\t// 获取关联摄像头\n\t\tasync getCameraList() {\n\t\t\tvar param = {\n\t\t\t\tlistOrder: [],\n\t\t\t\tpageId: \"813838385444560896\",\n\t\t\t\tpageIndex: 1,\n\t\t\t\tpageSize: 10,\n\t\t\t};\n\t\t\tconst res = await customPageGetList(param);\n\t\t\tvar cameraList = [];\n\t\t\tfor (let i = 0; i < res.data.content.length; i++) {\n\t\t\t\tif (res.data.content[i].field006) {\n\t\t\t\t\tcameraList.push(res.data.content[i].field006);\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar cameraAllList = this.$store.getters.cameraList;\n\t\t\tvar list = [];\n\t\t\tfor (let i = 0; i < cameraAllList.length; i++) {\n\t\t\t\tfor (let j = 0; j < cameraList.length; j++) {\n\t\t\t\t\tif (cameraAllList[i].id == cameraList[j]) {\n\t\t\t\t\t\tlist.push(cameraAllList[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar list1 = [...new Set(list)];\n\t\t\tthis.cameraList = list1;\n\t\t\tthis.cameraId = list1[0];\n\t\t},\n\t\topenCamera(item) {\n\t\t\tconsole.log(item);\n\t\t\tthis.cameraId = item;\n\t\t},\n\t},\n};\n",{"version":3,"sources":["HelloWorld.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"HelloWorld.vue","sourceRoot":"src/components","sourcesContent":["<template>\r\n\t<!-- <base-drag-dialog\r\n :options=\"{ title: '防爆扩音广播', show: amplificationVisible }\"\r\n appendToBody\r\n :styles=\"{ width: 900, height: 700 }\"\r\n @handleClose=\"handleClose\"\r\n > -->\r\n\t<div class=\"fbky\">\r\n\t\t<div class=\"top\">\r\n\t\t\t<span> 呼叫对象:呼和浩特全战场 </span>\r\n\t\t\t<span id=\"off_status\" class=\"set_status off_status\">离线</span>\r\n\t\t\t<span id=\"on_status\" class=\"set_status on_status\" hidden=\"\">在线</span>\r\n\t\t</div>\r\n\t\t<div class=\"fbky_manage\">\r\n\t\t\t<el-button type=\"primary\" @click=\"FbkyConnect\">连接防爆扩音</el-button>\r\n\t\t\t<el-button type=\"info\" @click=\"FbkyBreak\">断开防爆扩音</el-button>\r\n\t\t\t<el-button type=\"success\" @click=\"FbkyDial\">呼出通话</el-button>\r\n\t\t\t<el-button type=\"danger\" @click=\"FbkyHangUp\">挂断通话</el-button>\r\n\t\t\t<span>注:听到提示音后开始讲话,通话结束后请断开防爆扩音</span>\r\n\t\t</div>\r\n\t\t<div class=\"cameraList\">\r\n\t\t\t<button class=\"datebuttonitem\" v-for=\"item in cameraList\" :key=\"item.id\" @click=\"openCamera(item)\">\r\n\t\t\t\t{{ item.name }}\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"main\">\r\n\t\t\t<CanvasVideo class=\"canvas\" v-for=\"item in cameraList\" :key=\"item.id\" :cameraData=\"item\"\r\n\t\t\t\tv-show=\"cameraId == item\" />\r\n\t\t</div>\r\n\t\t<select class=\"set_slt\" id=\"audioInputDev\" style=\"display: none\">\r\n\t\t\t<option value=\"\">请选择</option>\r\n\t\t</select>\r\n\t\t<select class=\"set_slt\" id=\"videoInputDev\" style=\"display: none\">\r\n\t\t\t<option value=\"\">请选择</option>\r\n\t\t</select>\r\n\t\t<select class=\"set_slt\" id=\"audioOutputDev\" style=\"display: none\">\r\n\t\t\t<option value=\"\">请选择</option>\r\n\t\t</select>\r\n\t\t<!-- <fbky\r\n :curFbkyData=\"webSocketParams\"\r\n :ringNumber=\"ringNumber\"\r\n :callDisable=\"callDisable\"\r\n /> -->\r\n\t</div>\r\n\t<!-- </base-drag-dialog> -->\r\n</template>\r\n\r\n<script>\r\n\t// import BaseDragDialog from \"@/components/BaseDragDialog/BG_4.vue\";\r\n\t// import { mapGetters } from \"vuex\";\r\n\t// import { customPageGetList } from \"@/API/znxj\";\r\n\t// import CanvasVideo from \"@/components/ImageVideo/CanvasVideo.vue\";\r\n\t// import Fbky from \"./Fbky.vue\";\r\n\timport {\r\n\t\trtcHelper\r\n\t} from '@/assets/js/tr_webrtc.min.js'\r\n\texport default {\r\n\t\tname: \"PipelineAnimate\",\r\n\t\t// components: { BaseDragDialog, Fbky, CanvasVideo },\r\n\t\tcomputed: {\r\n\t\t\t// ...mapGetters([\"rtcHelper\", \"amplificationVisible\"]),\r\n\t\t},\r\n\t\tdata() {\r\n\t\t\treturn {\r\n\t\t\t\twebSocketParams: {\r\n\t\t\t\t\tadmin: \"8889\",\r\n\t\t\t\t\tpassword: \"123456\",\r\n\t\t\t\t\turl: \"wss://172.10.10.61:1443/webrtc\",\r\n\t\t\t\t\tlocalIp: \"\",\r\n\t\t\t\t\tautoReg: true,\r\n\t\t\t\t\tautoAnswer: false,\r\n\t\t\t\t},\r\n\t\t\t\tringNumber: 111,\r\n\t\t\t\tcallDisable: false,\r\n\t\t\t\topenningTile: \"离线\",\r\n\t\t\t\tcallDisable: false,\r\n\t\t\t\tcameraInfo: null,\r\n\t\t\t\tmic: \"\", //麦克风选择\r\n\t\t\t\tcam: \"\", //摄像头选择\r\n\t\t\t\tspeak: \"\", //扬声器选择\r\n\t\t\t\tcallback: {\r\n\t\t\t\t\tonRinging: function(d) {\r\n\t\t\t\t\t\t// 来电\r\n\t\t\t\t\t\tthis.onRinging(d);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonCalling: function(d) {\r\n\t\t\t\t\t\t// 外呼\r\n\t\t\t\t\t\tthis.onCalling(d);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonAnswer: function(d) {\r\n\t\t\t\t\t\t// 通话中\r\n\t\t\t\t\t\tthis.onAnswer(d);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonHangup: function(d) {\r\n\t\t\t\t\t\t// 挂机\r\n\t\t\t\t\t\tthis.onHangup(d);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonLogin: function(d) {\r\n\t\t\t\t\t\t//登录回调\r\n\t\t\t\t\t\tconsole.log(\"登录状态在线回调\");\r\n\t\t\t\t\t\tdocument\r\n\t\t\t\t\t\t\t.getElementById(\"off_status\")\r\n\t\t\t\t\t\t\t.setAttribute(\"hidden\", \"hidden\");\r\n\t\t\t\t\t\tdocument.getElementById(\"on_status\").removeAttribute(\"hidden\");\r\n\t\t\t\t\t\tlocalStorage.setItem(\"fbkyType\", \"在线\");\r\n\t\t\t\t\t\t// this.upOpenningTile(\"在线\");\r\n\t\t\t\t\t\tthis.openningTile = \"在线\";\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonLogout: function() {\r\n\t\t\t\t\t\t//登出回调\r\n\t\t\t\t\t\tconsole.log(\"登出状态离线回调\");\r\n\t\t\t\t\t\tdocument.getElementById(\"on_status\").setAttribute(\"hidden\", \"hidden\");\r\n\t\t\t\t\t\tdocument.getElementById(\"off_status\").removeAttribute(\"hidden\");\r\n\t\t\t\t\t\tlocalStorage.setItem(\"fbkyType\", \"离线\");\r\n\t\t\t\t\t\t// this.upOpenningTile(\"离线\");\r\n\t\t\t\t\t\tthis.openningTile = \"离线\";\r\n\t\t\t\t\t},\r\n\t\t\t\t},\r\n\t\t\t\t// 关联摄像头id列表\r\n\t\t\t\tcameraList: [],\r\n\t\t\t\tcameraId: {},\r\n\t\t\t};\r\n\t\t},\r\n\t\tmounted() {},\r\n\t\tcreated() {\r\n\t\t\t// this.getCameraList();\r\n\t\t\t// this.initMediaDevices();\r\n\t\t\t// setTimeout(() => {\r\n\t\t\t// this.initPerimeter();\r\n\t\t\t// }, 500);\r\n\t\t},\r\n\t\tdestroyed() {\r\n\t\t\t// this.callHangupAll();\r\n\t\t\t// setTimeout(() => {\r\n\t\t\t// this.webRtcLogout();\r\n\t\t\t// }, 500);\r\n\t\t},\r\n\t\tmethods: {\r\n\t\t\t// 连接防爆扩音\r\n\t\t\tFbkyConnect() {\r\n\t\t\t\t// this.openningTile = \"在线\"\r\n\t\t\t\tthis.initMediaDevices();\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.initPerimeter();\r\n\t\t\t\t}, 500);\r\n\t\t\t},\r\n\t\t\t// 断开防爆扩音\r\n\t\t\tFbkyBreak() {\r\n\t\t\t\tthis.openningTile = \"离线\";\r\n\t\t\t\tthis.callHangupAll();\r\n\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\tthis.webRtcLogout();\r\n\t\t\t\t}, 500);\r\n\t\t\t},\r\n\t\t\t// 呼出通话\r\n\t\t\tFbkyDial() {\r\n\t\t\t\t// 语音呼出\r\n\t\t\t\trtcHelper.rtcDial(this.ringNumber, false);\r\n\t\t\t},\r\n\t\t\t// 挂断通话\r\n\t\t\tFbkyHangUp() {},\r\n\t\t\tupOpenningTile(val) {\r\n\t\t\t\tthis.openningTile = val;\r\n\t\t\t},\r\n\t\t\t//挂断所有通话\r\n\t\t\tcallHangupAll() {\r\n\t\t\t\trtcHelper.rtcHangupAll();\r\n\t\t\t},\r\n\t\t\tgetVideoDiv() {\r\n\t\t\t\t// return document.getElementById(\"peerTag\").value;\r\n\t\t\t\treturn \"video1\";\r\n\t\t\t},\r\n\t\t\topenAll() {\r\n\t\t\t\t// this.ringNumber = \"110\";\r\n\t\t\t\tthis.ringNumber = \"111\";\r\n\t\t\t\tthis.callDisable = true;\r\n\t\t\t},\r\n\t\t\tcloseAll() {\r\n\t\t\t\tthis.callDisable = false;\r\n\t\t\t\tthis.openningTile = \"暂无\";\r\n\t\t\t\tthis.cameraInfo = null;\r\n\t\t\t},\r\n\t\t\thandleClose() {\r\n\t\t\t\t// this.$store.dispatch(\"home/toggleAmplificationVisible\");\r\n\t\t\t},\r\n\t\t\t//载入参数登录\r\n\t\t\tinitPerimeter() {\r\n\t\t\t\tif (\r\n\t\t\t\t\t!this.webSocketParams.admin ||\r\n\t\t\t\t\t!this.webSocketParams.password ||\r\n\t\t\t\t\t!this.webSocketParams.url\r\n\t\t\t\t) {\r\n\t\t\t\t\talert(\"请填写必填参数\");\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// 缓存配置\r\n\t\t\t\tlocalStorage.verto_login = this.webSocketParams.admin; //分机账号\r\n\t\t\t\tlocalStorage.verto_password = this.webSocketParams.password; //分机密码\r\n\t\t\t\tlocalStorage.verto_socketUrl = this.webSocketParams.url; //webSocketURL\r\n\t\t\t\tlocalStorage.verto_localIp = this.webSocketParams.localIp;\r\n\t\t\t\tlocalStorage.verto_autoReg = this.webSocketParams.autoReg; //自动登录开关\r\n\t\t\t\tlocalStorage.verto_autoAnswer = this.webSocketParams.autoAnswer; //自动接听开关\r\n\t\t\t\trtcHelper.bootstrap(\r\n\t\t\t\t\tthis.webSocketParams.admin,\r\n\t\t\t\t\tthis.webSocketParams.password,\r\n\t\t\t\t\tthis.webSocketParams.url,\r\n\t\t\t\t\tthis.webSocketParams.localIp,\r\n\t\t\t\t\tthis.getVideoDiv(),\r\n\t\t\t\t\t\"local_video\",\r\n\t\t\t\t\tthis.callback,\r\n\t\t\t\t\tthis.mic,\r\n\t\t\t\t\tthis.speak,\r\n\t\t\t\t\tthis.cam\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t\t//登出\r\n\t\t\twebRtcLogout() {\r\n\t\t\t\ttry {\r\n\t\t\t\t\trtcHelper.rtcLogout();\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t//获取音视频设备\r\n\t\t\tinitMediaDevices() {\r\n\t\t\t\trtcHelper.getMediaDevices().then((result) => {\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\tlet microphone = result.audioInputDevices; //麦克风\r\n\t\t\t\t\t\tlet camera = result.videoDevices; //摄像头+\r\n\t\t\t\t\t\tlet loudspeaker = result.audioOutputDevices; //扬声器\r\n\t\t\t\t\t\tlet microphoneStr = \"\";\r\n\t\t\t\t\t\tlet cameraStr = \"\";\r\n\t\t\t\t\t\tlet loudspeakerStr = \"\";\r\n\t\t\t\t\t\t// for (let i = 0; i < microphone.length; i++) {\r\n\t\t\t\t\t\t// microphoneStr +=\r\n\t\t\t\t\t\t// '<option value=\"' +\r\n\t\t\t\t\t\t// microphone[i].deviceId +\r\n\t\t\t\t\t\t// '\">' +\r\n\t\t\t\t\t\t// microphone[i].label +\r\n\t\t\t\t\t\t// \"</option>\";\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t// document.getElementById(\"audioInputDev\").innerHTML = microphoneStr;\r\n\t\t\t\t\t\t// for (let i = 0; i < camera.length; i++) {\r\n\t\t\t\t\t\t// cameraStr +=\r\n\t\t\t\t\t\t// '<option value=\"' +\r\n\t\t\t\t\t\t// microphone[i].deviceId +\r\n\t\t\t\t\t\t// '\">' +\r\n\t\t\t\t\t\t// camera[i].label +\r\n\t\t\t\t\t\t// \"</option>\";\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t// document.getElementById(\"videoInputDev\").innerHTML = cameraStr;\r\n\t\t\t\t\t\t// for (let i = 0; i < loudspeaker.length; i++) {\r\n\t\t\t\t\t\t// loudspeakerStr +=\r\n\t\t\t\t\t\t// '<option value=\"' +\r\n\t\t\t\t\t\t// microphone[i].deviceId +\r\n\t\t\t\t\t\t// '\">' +\r\n\t\t\t\t\t\t// loudspeaker[i].label +\r\n\t\t\t\t\t\t// \"</option>\";\r\n\t\t\t\t\t\t// }\r\n\t\t\t\t\t\t// document.getElementById(\"audioOutputDev\").innerHTML = loudspeakerStr;\r\n\t\t\t\t\t\tif (microphone.length > 0) {\r\n\t\t\t\t\t\t\tthis.mic = microphone[0].deviceId;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (camera.length > 0) {\r\n\t\t\t\t\t\t\tthis.cam = camera[0].deviceId;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (loudspeaker.length > 0) {\r\n\t\t\t\t\t\t\tthis.speak = loudspeaker[0].deviceId;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tconsole.log(\"音视频设备:\", result, this.mic, this.cam, this.speak);\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// 自动登录\r\n\t\t\t\t\t// if (\r\n\t\t\t\t\t// localStorage.verto_autoReg == \"true\" &&\r\n\t\t\t\t\t// localStorage.verto_login &&\r\n\t\t\t\t\t// localStorage.verto_password &&\r\n\t\t\t\t\t// localStorage.verto_socketUrl\r\n\t\t\t\t\t// ) {\r\n\t\t\t\t\t// this.initPerimeter();\r\n\t\t\t\t\t// }\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t\t// 获取关联摄像头\r\n\t\t\tasync getCameraList() {\r\n\t\t\t\tvar param = {\r\n\t\t\t\t\tlistOrder: [],\r\n\t\t\t\t\tpageId: \"813838385444560896\",\r\n\t\t\t\t\tpageIndex: 1,\r\n\t\t\t\t\tpageSize: 10,\r\n\t\t\t\t};\r\n\t\t\t\tconst res = await customPageGetList(param);\r\n\t\t\t\tvar cameraList = [];\r\n\t\t\t\tfor (let i = 0; i < res.data.content.length; i++) {\r\n\t\t\t\t\tif (res.data.content[i].field006) {\r\n\t\t\t\t\t\tcameraList.push(res.data.content[i].field006);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tvar cameraAllList = this.$store.getters.cameraList;\r\n\t\t\t\tvar list = [];\r\n\t\t\t\tfor (let i = 0; i < cameraAllList.length; i++) {\r\n\t\t\t\t\tfor (let j = 0; j < cameraList.length; j++) {\r\n\t\t\t\t\t\tif (cameraAllList[i].id == cameraList[j]) {\r\n\t\t\t\t\t\t\tlist.push(cameraAllList[i]);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tvar list1 = [...new Set(list)];\r\n\t\t\t\tthis.cameraList = list1;\r\n\t\t\t\tthis.cameraId = list1[0];\r\n\t\t\t},\r\n\t\t\topenCamera(item) {\r\n\t\t\t\tconsole.log(item);\r\n\t\t\t\tthis.cameraId = item;\r\n\t\t\t},\r\n\t\t},\r\n\t};\r\n</script>\r\n\r\n<style scoped>\r\n\t.fbky {\r\n\t\tpadding: 20px;\r\n\t\tcolor: #fff;\r\n\t\tfont-size: 14px;\r\n\r\n\t}\r\n\r\n\t.top .el-tag {\r\n\t\tmargin-left: 10px;\r\n\t}\r\n\r\n\t.fbky_manage {\r\n\t\tmargin-top: 10px;\r\n\t\tmargin-bottom: 10px;\r\n\t}\r\n\r\n\t.fbky_manage span {\r\n\t\tdisplay: inline-block;\r\n\t\tmargin-left: 20px;\r\n\t\tcolor: red;\r\n\t}\r\n\r\n\t.cameraList {\r\n\t\tmargin-top: 15px;\r\n\t\tmargin-bottom: 15px;\r\n\t}\r\n\r\n\t.datebuttonitem {\r\n\t\tbackground: rgba(216, 216, 216, 0);\r\n\t\tborder: 1px solid #3c91c7;\r\n\t\tborder-radius: 5px;\r\n\t\t// width: 78px;\r\n\t\theight: 26px;\r\n\t\tfont-family: MicrosoftYaHei;\r\n\t\tfont-size: 14px;\r\n\t\tcolor: #49ccff;\r\n\t\tletter-spacing: 0;\r\n\t\tline-height: 13px;\r\n\t\tfont-weight: 400;\r\n\t\tpadding: 5px;\r\n\t\tcursor: pointer;\r\n\t\tmargin-right: 5px;\r\n\t}\r\n\r\n\t.canvas {\r\n\t\twidth: 850px;\r\n\t\theight: 480px;\r\n\t}\r\n\r\n\t.set_status {\r\n\t\tcolor: #fff;\r\n\t\tborder-radius: 10px;\r\n\t\tpadding: 4px 10px;\r\n\t\tmargin-left: 20px;\r\n\t}\r\n\r\n\t.off_status {\r\n\t\tbackground-color: #bbb;\r\n\t}\r\n\r\n\t.on_status {\r\n\t\tbackground-color: #3fd672;\r\n\t}\r\n</style>"]}]}