From b4048fbe80dba8e7756ae557a15ab60b4f80a44b Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 04 四月 2023 09:09:07 +0800 Subject: [PATCH] 合并开源主线 --- web_src/src/components/dialog/devicePlayer.vue | 84 +++++++++++++++++++++++++++++++++-------- 1 files changed, 67 insertions(+), 17 deletions(-) diff --git a/web_src/src/components/dialog/devicePlayer.vue b/web_src/src/components/dialog/devicePlayer.vue index 59e0ee3..64e6743 100644 --- a/web_src/src/components/dialog/devicePlayer.vue +++ b/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> @@ -299,6 +299,11 @@ </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="鍠婅瘽(Broadcast)" + inactive-text="瀵硅(Talk)"></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;"/> @@ -390,6 +395,7 @@ recordStartTime: 0, showTimeText: "00:00:00", streamInfo: null, + broadcastMode: true, broadcastRtc: null, broadcastStatus: -1, // -2 姝e湪閲婃斁璧勬簮 -1 榛樿鐘舵�� 0 绛夊緟鎺ラ�� 1 鎺ラ�氭垚鍔� }; @@ -560,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) { @@ -626,6 +632,50 @@ }) }, + 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({ @@ -643,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, //娴佸湴鍧� @@ -669,7 +719,7 @@ console.error('涓嶆敮鎸亀ebrtc', e) this.$message({ showClose: true, - message: '涓嶆敮鎸亀ebrtc, 鏃犳硶杩涜璇煶瀵硅', + message: '涓嶆敮鎸亀ebrtc, 鏃犳硶杩涜璇煶鍠婅瘽', type: 'error' }); this.broadcastStatus = -1; -- Gitblit v1.8.0