shuishen
2021-01-30 425657ee9e642d7cd918c4fe947736af097b8b74
下载录制音频相关JS,添加一键呼叫的点击事件
4 files modified
128 ■■■■ changed files
package-lock.json 5 ●●●●● patch | view | raw | blame | history
package.json 1 ●●●● patch | view | raw | blame | history
src/views/home/home.vue 2 ●●● patch | view | raw | blame | history
src/views/realTimePolice/real.vue 120 ●●●● patch | view | raw | blame | history
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",
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",
src/views/home/home.vue
@@ -1,6 +1,6 @@
<template>
  <iframe v-show="iframeState" id="show-iframe" frameborder=0 name="showHere" scrolling=auto
          src="https://s16s652780.51mypc.cn/bigScreen/#/view/1349193280059879426"></iframe>
          src="https://s16s652780.51mypc.cn/bigScreen/view/1349193280059879426"></iframe>
</template>
<script>
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>