648540858
2022-09-29 06bbe3fe01e5af9486c309693a975077df813f7c
web_src/src/components/dialog/devicePlayer.vue
@@ -119,6 +119,10 @@
                                  <el-tag >RTC:</el-tag>
                                  <span>{{ streamInfo.rtc }}</span>
                                </el-dropdown-item>
                                <el-dropdown-item :command="streamInfo.rtcs">
                                  <el-tag >RTCS:</el-tag>
                                  <span>{{ streamInfo.rtcs }}</span>
                                </el-dropdown-item>
                                <el-dropdown-item :command="streamInfo.rtmp">
                                  <el-tag >RTMP:</el-tag>
                                  <span>{{ streamInfo.rtmp }}</span>
@@ -319,7 +323,9 @@
        }
    },
    created() {
      console.log("created")
      console.log(this.player)
      this.broadcastStatus = -1;
      if (Object.keys(this.player).length === 1) {
        this.activePlayer = Object.keys(this.player)[0]
      }
@@ -332,7 +338,7 @@
            // 如何你只是用一种播放器,直接注释掉不用的部分即可
            player: {
              jessibuca : ["ws_flv", "wss_flv"],
              webRTC: ["rtc", "rtc"],
              webRTC: ["rtc", "rtcs"],
            },
            videoHistory: {
                date: '',
@@ -386,7 +392,7 @@
            if (tab.name === "codec") {
                this.$axios({
                    method: 'get',
                    url: '/zlm/' +this.mediaServerId+ '/index/api/getMediaInfo?vhost=__defaultVhost__&schema=rtmp&app='+ this.app +'&stream='+ this.streamId
                    url: '/zlm/' +this.mediaServerId+ '/index/api/getMediaInfo?vhost=__defaultVhost__&schema=rtsp&app='+ this.app +'&stream='+ this.streamId
                }).then(function (res) {
                    that.tracksLoading = false;
                    if (res.data.code == 0 && res.data.tracks) {
@@ -409,6 +415,9 @@
            console.log(this.videoUrl)
        },
        openDialog: function (tab, deviceId, channelId, param) {
            if (this.showVideoDialog) {
              return;
            }
            this.tabActiveName = tab;
            this.channelId = channelId;
            this.deviceId = deviceId;
@@ -540,9 +549,7 @@
              this.stopPlayRecord();
            }
            this.recordPlay = ''
            if (this.broadcastStatus === 1) {
              this.stopBroadcast()
            }
            this.stopBroadcast()
        },
        copySharedInfo: function (data) {
@@ -857,7 +864,12 @@
              }).then( (res)=> {
                if (res.data.code == 0) {
                  let streamInfo = res.data.data.streamInfo;
                  this.startBroadcast(streamInfo.rtc)
                  if (document.location.protocol.includes("https")) {
                    this.startBroadcast(streamInfo.rtcs)
                  }else {
                    this.startBroadcast(streamInfo.rtc)
                  }
                }else {
                  this.$message({
                    showClose: true,
@@ -867,7 +879,8 @@
                }
              });
            }else if (this.broadcastStatus === 1) {
              this.stopBroadcast()
                this.broadcastStatus = -1;
                this.broadcastRtc.close()
            }
        },
        startBroadcast(url){
@@ -882,6 +895,7 @@
                message: "获取推流鉴权Key失败",
                type: "error",
              });
              this.broadcastStatus = -1;
            }else {
              let pushKey = res.data.data.pushKey;
              // 获取推流鉴权KEY
@@ -915,6 +929,7 @@
                  message: '不支持webrtc, 无法进行语音对讲',
                  type: 'error'
                });
                this.broadcastStatus = -1;
              });
              this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ICE_CANDIDATE_ERROR,(e)=>{// ICE 协商出错
@@ -924,6 +939,7 @@
                  message: 'ICE 协商出错',
                  type: 'error'
                });
                this.broadcastStatus = -1;
              });
              this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,(e)=>{// offer anwser 交换失败
@@ -933,6 +949,7 @@
                  message: 'offer anwser 交换失败' + e,
                  type: 'error'
                });
                this.broadcastStatus = -1;
              });
              this.broadcastRtc.on(ZLMRTCClient.Events.WEBRTC_ON_CONNECTION_STATE_CHANGE,(e)=>{// offer anwser 交换失败
                console.log('状态改变',e)
@@ -951,15 +968,23 @@
                  message: '捕获流失败' + e,
                  type: 'error'
                });
                this.broadcastStatus = -1;
              });
            }
          }).catch((e) => {
            this.$message({
              showClose: true,
              message: e,
              type: 'error'
            });
            this.broadcastStatus = -1;
          });
        },
        stopBroadcast(){
          this.broadcastStatus = -2;
          this.broadcastRtc = null;
          this.broadcastRtc.close();
          this.broadcastStatus = -1;
          this.$axios({
            method: 'get',
            url: '/api/play/broadcast/stop/' + this.deviceId + '/' + this.channelId
@@ -975,7 +1000,6 @@
              });
            }
          });
        }
    }
};