648540858
2023-03-21 455e58f866d7f538422f50362137d9759dc58768
web_src/src/components/dialog/devicePlayer.vue
@@ -181,7 +181,7 @@
                                                     style="font-size: 1.875rem;"></i></div>
                <div style="position: absolute; left: 7.25rem; top: 3.25rem; font-size: 1.875rem;"
                     @mousedown="ptzCamera('zoomout')" @mouseup="ptzCamera('stop')"><i
                  class="el-icon-zoom-out control-zoom-btn"></i></div>
                    class="el-icon-zoom-out control-zoom-btn"></i></div>
                <div class="contro-speed" style="position: absolute; left: 4px; top: 7rem; width: 9rem;">
                  <el-slider v-model="controSpeed" :max="255"></el-slider>
                </div>
@@ -300,8 +300,9 @@
          </el-tab-pane>
          <el-tab-pane label="语音对讲" name="broadcast">
            <div style="padding: 0 10px">
              <el-switch v-model="broadcastMode" :disabled="broadcastStatus !== -1" active-color="#409EFF" active-text="喊话"
                         inactive-text="对讲"></el-switch>
              <el-switch v-model="broadcastMode" :disabled="broadcastStatus !== -1" active-color="#409EFF"
                         active-text="喊话(Broadcast)"
                         inactive-text="对讲(Talk)"></el-switch>
            </div>
            <div class="trank" style="text-align: center;">
              <el-button @click="broadcastStatusClick()" :type="getBroadcastStatus()" :disabled="broadcastStatus === -2"
@@ -565,20 +566,20 @@
      this.tracks = []
      let _this = this;
      this.$copyText(data).then(
        function (e) {
          _this.$message({
            showClose: true,
            message: '复制成功',
            type: 'success'
          });
        },
        function (e) {
          _this.$message({
            showClose: true,
            message: '复制失败,请手动复制',
            type: 'error'
          });
        }
          function (e) {
            _this.$message({
              showClose: true,
              message: '复制成功',
              type: 'success'
            });
          },
          function (e) {
            _this.$message({
              showClose: true,
              message: '复制失败,请手动复制',
              type: 'error'
            });
          }
      );
    },
    ptzCamera: function (command) {
@@ -654,16 +655,15 @@
        this.$axios({
          method: 'get',
          url: '/api/play/broadcast/' + this.deviceId + '/' + this.channelId + "?timeout=30&broadcastMode=" + this.broadcastMode
        }).then( (res)=> {
          if (res.data.code == 0) {
        }).then((res) => {
          if (res.data.code === 0) {
            let streamInfo = res.data.data.streamInfo;
            if (document.location.protocol.includes("https")) {
              this.startBroadcast(streamInfo.rtcs)
            }else {
            } else {
              this.startBroadcast(streamInfo.rtc)
            }
          }else {
          } else {
            this.$message({
              showClose: true,
              message: res.data.msg,
@@ -671,7 +671,7 @@
            });
          }
        });
      }else if (this.broadcastStatus === 1) {
      } else if (this.broadcastStatus === 1) {
        this.broadcastStatus = -1;
        this.broadcastRtc.close()
      }
@@ -693,7 +693,7 @@
          let pushKey = res.data.data.pushKey;
          // 获取推流鉴权KEY
          url += "&sign=" + crypto.createHash('md5').update(pushKey, "utf8").digest('hex')
          console.log("开始语音对讲: " + url)
          console.log("开始语音喊话: " + url)
          this.broadcastRtc = new ZLMRTCClient.Endpoint({
            debug: true, // 是否打印日志
            zlmsdpUrl: url, //流地址
@@ -719,7 +719,7 @@
            console.error('不支持webrtc', e)
            this.$message({
              showClose: true,
              message: '不支持webrtc, 无法进行语音对讲',
              message: '不支持webrtc, 无法进行语音喊话',
              type: 'error'
            });
            this.broadcastStatus = -1;