From 1fe7d067ed24f10d532a92be239bf5cc8481b988 Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Sat, 30 Jan 2021 17:31:39 +0800
Subject: [PATCH] 下载录制音频相关JS,添加一键呼叫的点击事件

---
 src/views/realTimePolice/real.vue |  120 ++++++++++++++++++++++++++++-----------
 package-lock.json                 |    5 +
 package.json                      |    1 
 3 files changed, 91 insertions(+), 35 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 7e37de0..db2e0b2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6603,6 +6603,11 @@
       "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=",
       "dev": true
     },
+    "js-audio-recorder": {
+      "version": "1.0.7",
+      "resolved": "https://registry.npm.taobao.org/js-audio-recorder/download/js-audio-recorder-1.0.7.tgz",
+      "integrity": "sha1-AVAcuesUPVeZS0K9Wul5dP2hiQg="
+    },
     "js-base64": {
       "version": "2.6.4",
       "resolved": "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.4.tgz?cache=0&sync_timestamp=1604450395858&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.4.tgz",
diff --git a/package.json b/package.json
index 461ac9a..31955c2 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
     "crypto-js": "^4.0.0",
     "element-ui": "^2.13.2",
     "hls.js": "^0.14.17",
+    "js-audio-recorder": "^1.0.7",
     "js-base64": "^2.5.1",
     "js-cookie": "^2.2.0",
     "js-md5": "^0.7.3",
diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index f4737db..523aa31 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -217,7 +217,9 @@
           </el-col>
           <el-col span="12">
             <el-form-item label="历史视频">
-              <el-button type="primary" @click="queryOldVideo(form)">查看视频</el-button>
+              <el-button type="primary" @click.stop="queryOldVideo(form)"
+                >查看视频</el-button
+              >
             </el-form-item>
           </el-col>
         </el-row>
@@ -251,7 +253,12 @@
         <el-row :align="center">
           <el-col :offset="4">
             <el-form-item>
-              <el-button type="success">一键呼叫</el-button>
+              <el-button
+                :class="{ active: isActive }"
+                type="success"
+                @click.stop="aKeyToCall($event, form)"
+                >一键呼叫</el-button
+              >
               <el-button type="success">视频对讲</el-button>
               <el-button type="primary" @click.stop="generate(form)"
                 >生成警单</el-button
@@ -289,6 +296,8 @@
 import Hls from "hls.js";
 
 import axios from "axios";
+
+import Recorder from "js-audio-recorder";
 
 export default {
   data() {
@@ -471,7 +480,8 @@
           }
         ]
       },
-      data: []
+      data: [],
+      isActive: false
     };
   },
   computed: {
@@ -829,7 +839,6 @@
     },
 
     beginTimeOrEndTime(time) {
-
       var beginTime = new Date(time);
 
       var endTime = new Date(new Date(time).valueOf() - 1000 * 60 * 60 * 3);
@@ -913,41 +922,40 @@
         .then(res => {
           console.log(res.data.data.accessToken);
 
-            newAxios
-              .get(
-                `/GetPlayUrl?deviceCode=${data.channelNumber}&chl=${data.serialNumber}`
-              )
-              .then(result => {
-                this.innerVisibleVideo = true;
+          newAxios
+            .get(
+              `/GetPlayUrl?deviceCode=${data.channelNumber}&chl=${data.serialNumber}`
+            )
+            .then(result => {
+              this.innerVisibleVideo = true;
 
-                this.videoSource = result.data.data.m3u8;
-              });
+              this.videoSource = result.data.data.m3u8;
+            });
 
-        //   newAxios
-        //     .post(
-        //       "/api_control",
-        //       {},
-        //       {
-        //         params: {
-        //           param: JSON.stringify({
-        //             PktType: "RemotePlayback",
-        //             accessToken: res.data.data.accessToken,
-        //             deviceCode: "001231409472",
-        //             startTime: "20210130150000",
-        //             endTime: "20210130160000",
-        //             chl: data.serialNumber
-        //           })
-        //         }
-        //       }
-        //     )
-        //     .then(result => {
-            
+          //   newAxios
+          //     .post(
+          //       "/api_control",
+          //       {},
+          //       {
+          //         params: {
+          //           param: JSON.stringify({
+          //             PktType: "RemotePlayback",
+          //             accessToken: res.data.data.accessToken,
+          //             deviceCode: "001231409472",
+          //             startTime: "20210130150000",
+          //             endTime: "20210130160000",
+          //             chl: data.serialNumber
+          //           })
+          //         }
+          //       }
+          //     )
+          //     .then(result => {
 
-        //       this.innerVisibleVideo = true;
+          //       this.innerVisibleVideo = true;
 
-        //       this.videoSource = result.data.data.m3u8;
+          //       this.videoSource = result.data.data.m3u8;
 
-        //     });
+          //     });
         });
     },
     openOldVideoBox() {
@@ -958,7 +966,7 @@
 
         this.hls = new Hls();
 
-        console.log(this.videoSource, '19028321321r073');
+        console.log(this.videoSource, "19028321321r073");
 
         var m3u8Url = decodeURIComponent(this.videoSource);
 
@@ -980,6 +988,44 @@
         dom.pause();
 
         dom.setAttribute("");
+      }
+    },
+    aKeyToCall(e, form) {
+      // 一键呼叫相关函数
+      if (this.isActive == true) {
+        this.isActive = false;
+      } 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
+        });
+
+        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)
+
+        //       });
+
+
+      
       }
     }
   }
@@ -1034,4 +1080,8 @@
   height: calc(100% - 54px);
   box-sizing: border-box;
 }
+
+.el-button.active {
+  background: red;
+}
 </style>

--
Gitblit v1.9.3