| | |
| | | |
| | | </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> |
| | | </div> |
| | | <div class="trank" style="text-align: center;"> |
| | | <el-button @click="broadcastStatusClick()" :type="getBroadcastStatus()" :disabled="broadcastStatus === -2" |
| | | circle icon="el-icon-microphone" style="font-size: 32px; padding: 24px;margin-top: 24px;"/> |
| | |
| | | recordStartTime: 0, |
| | | showTimeText: "00:00:00", |
| | | streamInfo: null, |
| | | broadcastMode: true, |
| | | broadcastRtc: null, |
| | | broadcastStatus: -1, // -2 正在释放资源 -1 默认状态 0 等待接通 1 接通成功 |
| | | }; |
| | |
| | | |
| | | }) |
| | | }, |
| | | getBroadcastStatus() { |
| | | if (this.broadcastStatus == -2) { |
| | | return "primary" |
| | | } |
| | | if (this.broadcastStatus == -1) { |
| | | return "primary" |
| | | } |
| | | if (this.broadcastStatus == 0) { |
| | | return "warning" |
| | | } |
| | | if (this.broadcastStatus == 1) { |
| | | return "danger" |
| | | } |
| | | |
| | | }, |
| | | broadcastStatusClick() { |
| | | if (this.broadcastStatus == -1) { |
| | | // 默认状态, 开始 |
| | | this.broadcastStatus = 0 |
| | | // 发起语音对讲 |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: '/api/play/broadcast/' + this.deviceId + '/' + this.channelId + "?timeout=30&broadcastMode=" + this.broadcastMode |
| | | }).then( (res)=> { |
| | | if (res.data.code == 0) { |
| | | let streamInfo = res.data.data.streamInfo; |
| | | if (document.location.protocol.includes("https")) { |
| | | this.startBroadcast(streamInfo.rtcs) |
| | | }else { |
| | | this.startBroadcast(streamInfo.rtc) |
| | | } |
| | | |
| | | }else { |
| | | this.$message({ |
| | | showClose: true, |
| | | message: res.data.msg, |
| | | type: "error", |
| | | }); |
| | | } |
| | | }); |
| | | }else if (this.broadcastStatus === 1) { |
| | | this.broadcastStatus = -1; |
| | | this.broadcastRtc.close() |
| | | } |
| | | }, |
| | | startBroadcast(url) { |
| | | // 获取推流鉴权Key |
| | | this.$axios({ |