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