From 2d1fab36d2be3101ed292152891fc92d899dd8ac Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 01 Feb 2021 23:39:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master

---
 src/views/realTimePolice/real.vue |  137 +++++++++++++++++++++++++++------------------
 1 files changed, 81 insertions(+), 56 deletions(-)

diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index 136d15b..df3ba65 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -89,7 +89,7 @@
           icon="el-icon-location-outline"
           :size="size"
           :type="type"
-          @click.stop="handleAdd11()"
+          @click.stop="handleMap()"
           >定位</el-button
         >
       </template>
@@ -99,6 +99,7 @@
       title="警情处置"
       :visible.sync="dialogTableVisible"
       append-to-body="true"
+      @close="innerVisibleVideo = false"
     >
       <el-dialog
         class="old-video-dialog"
@@ -108,7 +109,7 @@
         :visible.sync="innerVisibleVideo"
         :close-on-press-escape="false"
         append-to-body
-        @opened="openOldVideoBox()"
+        @opened="openOldVideoBox"
         @close="closeOldVideoBox"
       >
         <video
@@ -273,18 +274,8 @@
       </el-form>
     </el-dialog>
 
-    <el-drawer
-      title="我是标题"
-      append-to-body="true"
-      :visible.sync="qwe"
-      :direction="direction"
-    >
-      <iframe
-        src="http://www.baidu.com"
-        frameborder="0"
-        width="100%"
-        height="600px"
-      ></iframe>
+    <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
+      <iframe :src="mapUrl" frameborder="0" width="100%" height="100%"></iframe>
     </el-drawer>
   </basic-container>
 </template>
@@ -302,12 +293,12 @@
 export default {
   data() {
     return {
-      qwe: false,
+      showMap: false,
+      mapUrl: "https://s16s652780.51mypc.cn/jfpt/map/index.html",
       hls: "",
       videoSource: "",
       dialogTableVisible: false,
       innerVisibleVideo: false,
-      direction: "rtl",
       form: {},
       query: {},
       dateTime: [],
@@ -481,7 +472,8 @@
         ]
       },
       data: [],
-      isActive: false
+      isActive: false,
+      recorder: null
     };
   },
   computed: {
@@ -504,6 +496,13 @@
   },
   created() {
     this.dateTime = this.getDate();
+
+    this.recorder = new Recorder({
+      sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
+      sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
+      numChannels: 1 // 声道,支持 1 或 2, 默认是1
+      // compiling: false,(0.x版本中生效,1.x增加中)  // 是否边录边转换,默认是false
+    });
   },
   methods: {
     rowSave(row, done, loading) {
@@ -761,8 +760,10 @@
     handleHistory(row) {
       this.$router.push({ path: `/real/history/${row.deviceNumber}` });
     },
-    handleAdd11() {
-      this.qwe = true;
+    handleMap() {
+      this.showMap = true;
+      this.mapUrl =
+        "https://s16s652780.51mypc.cn/jfpt/map/index.html?openid=PatrolManagement";
     },
     handleManage(row) {
       this.form = row;
@@ -904,9 +905,8 @@
       };
     },
     queryOldVideo(data) {
-      console.log(data);
       var newAxios = axios.create({
-        baseURL: "http://s16s652780.51mypc.cn",
+        baseURL: "https://s16s652780.51mypc.cn",
         withCredentials: false,
         headers: {
           "Content-type": "application/x-www-form-urlencoded"
@@ -926,8 +926,6 @@
           }
         )
         .then(res => {
-          console.log(res.data.data.accessToken);
-
           newAxios
             .get(
               `/GetPlayUrl?deviceCode=${data.channelNumber}&chl=${data.serialNumber}`
@@ -972,11 +970,7 @@
 
         this.hls = new Hls();
 
-        console.log(this.videoSource, "19028321321r073");
-
         var m3u8Url = decodeURIComponent(this.videoSource);
-
-        console.log(m3u8Url);
 
         this.hls.loadSource(m3u8Url);
 
@@ -993,45 +987,76 @@
       if (dom.getAttribute("src") != "") {
         dom.pause();
 
-        dom.setAttribute("");
+        dom.setAttribute("src", "");
+
+        this.hls.destroy();
       }
     },
     aKeyToCall(e, form) {
+      var newCallAxios = axios.create({
+        baseURL: "https://s16s652780.51mypc.cn",
+        withCredentials: false,
+        headers: {
+          "Content-Type": "application/json;"
+        }
+      });
+
       // 一键呼叫相关函数
       if (this.isActive == true) {
         this.isActive = false;
+
+        newCallAxios
+          .post(
+            `/api_control`,
+            {},
+            {
+              params: {
+                param: { PktType: "GetAccessToken" }
+              }
+            }
+          )
+          .then(result => {
+            var formData = new FormData();
+            var blob = this.recorder.getPCMBlob(); //获取pcm格式音频数据
+            //此处获取到blob对象后需要设置fileName满足当前项目上传需求,其它项目可直接传把blob作为file塞入formData
+            var newbolb = new Blob([blob], { type: "audio/pcm" });
+            var fileOfBlob = new File([newbolb], new Date().getTime() + ".pcm");
+            formData.append("file", fileOfBlob);
+
+            document
+              .getElementById("real_audio")
+              .setAttribute("src", URL.createObjectURL(blob));
+
+            console.log(
+              blob,
+              newbolb,
+              fileOfBlob,
+              window.URL.createObjectURL(blob),
+              99999
+            );
+
+            this.recorder.play();
+
+            newCallAxios
+              .post(`/api_control`, blob, {
+                params: {
+                  param: {
+                    PktType: "Talk",
+                    accessToken: result.data.data.accessToken,
+                    deviceCode: form.channelNumber
+                  }
+                }
+              })
+              .then(result => {});
+          });
       } else {
         this.isActive = true;
 
-        let recorder = new Recorder({
-          sampleBits: 16, // 采样位数,支持 8 或 16,默认是16
-          sampleRate: 16000, // 采样率,支持 11025、16000、22050、24000、44100、48000,根据浏览器默认值,我的chrome是48000
-          numChannels: 1 // 声道,支持 1 或 2, 默认是1
-          // compiling: false,(0.x版本中生效,1.x增加中)  // 是否边录边转换,默认是false
+        Recorder.getPermission().then(() => {
+          this.recorder.start().then(() => {
+            // 开始录音
+          });
         });
-
-        var newAxios = axios.create({
-          baseURL: "http://s16s652780.51mypc.cn",
-          withCredentials: false,
-          headers: {
-            "Content-type": "application/x-www-form-urlencoded"
-          }
-        });
-
-
-        //    newAxios
-        //       .post(
-        //         `/talk?deviceCode=${form.channelNumber}`,
-        //         '12345',
-        //       )
-        //       .then(result => {
-
-        //           console.log(result)
-
-        //       });
-
-
-
       }
     }
   }

--
Gitblit v1.9.3