From cfe9c762d680569136d0246ab61c79cd7e4eba50 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 05 九月 2022 09:40:14 +0800
Subject: [PATCH] 修复前端播放

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java |    8 ++--
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java   |    5 --
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java                     |   12 +----
 web_src/src/components/dialog/devicePlayer.vue                                                      |   56 ++++++++++++++++-----------
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java                       |    3 -
 src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java                              |    4 +-
 6 files changed, 44 insertions(+), 44 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index 9c31e2a..d0aa589 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -41,7 +41,9 @@
 import javax.sip.message.Request;
 import java.lang.reflect.Field;
 import java.text.ParseException;
+import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.List;
 
 /**    
  * @description:璁惧鑳藉姏鎺ュ彛锛岀敤浜庡畾涔夎澶囩殑鎺у埗銆佹煡璇㈣兘鍔�   
@@ -685,15 +687,7 @@
 		// 澧炲姞Contact header
 		Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort()));
 		byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
-		List<String> agentParam = new ArrayList<>();
-		agentParam.add("wvp-pro");
-		// TODO 娣诲姞鐗堟湰淇℃伅浠ュ強鏃ユ湡
-		UserAgentHeader userAgentHeader = null;
-		try {
-			userAgentHeader = sipFactory.createHeaderFactory().createUserAgentHeader(agentParam);
-		} catch (ParseException e) {
-			throw new RuntimeException(e);
-		}
+		UserAgentHeader userAgentHeader = HeaderUtils.createUserAgentHeader(sipFactory);
 		byeRequest.addHeader(userAgentHeader);
 		ClientTransaction clientTransaction = null;
 		if("TCP".equals(protocol)) {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
index 8977d8a..3a0c647 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
@@ -63,12 +63,9 @@
 			System.out.println(serverTransaction.getState().toString());
 		}
 		// 鍒ゆ柇TCP杩樻槸UDP
-		boolean isTcp = false;
 		ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
 		String transport = reqViaHeader.getTransport();
-		if (transport.equals("TCP")) {
-			isTcp = true;
-		}
+		boolean isTcp = "TCP".equals(transport);
 
 		if (serverTransaction == null) {
 			try {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index cf41388..53e54b4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -126,7 +126,7 @@
 	private DeferredResultHolder resultHolder;
 
 	@Autowired
-	private ZLMHttpHookSubscribe subscribe;
+	private ZlmHttpHookSubscribe subscribe;
 
 	@Autowired
 	private SipConfig config;
@@ -776,13 +776,13 @@
         }
     }
 
-    public void inviteFromDeviceHandle(RequestEvent evt, String requesterId, String channelId1) throws InvalidArgumentException, ParseException, SipException, SdpException {
+    public void inviteFromDeviceHandle(RequestEvent evt, String requesterId, String channelId) throws InvalidArgumentException, ParseException, SipException, SdpException {
 
         // 闈炰笂绾у钩鍙拌姹傦紝鏌ヨ鏄惁璁惧璇锋眰锛堥�氬父涓烘帴鏀惰闊冲箍鎾殑璁惧锛�
         Device device = redisCatchStorage.getDevice(requesterId);
-        AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(requesterId, channelId1);
+        AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(requesterId, channelId);
         if (audioBroadcastCatch == null) {
-            logger.warn("鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾紝宸插拷鐣�");
+            logger.warn("鏉ヨ嚜璁惧鐨処nvite璇锋眰闈炶闊冲箍鎾紝宸插拷鐣ワ紝requesterId锛� {}/{}", requesterId, channelId);
             responseAck(evt, Response.FORBIDDEN);
             return;
         }
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
index b63747c..3e9b530 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServiceImpl.java
@@ -108,7 +108,7 @@
         streamInfoResult.setWs_fmp4(String.format("ws://%s:%s/%s/%s.live.mp4%s", addr, mediaInfo.getHttpPort(), app,  stream, callIdParam));
         streamInfoResult.setTs(String.format("http://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpPort(), app,  stream, callIdParam));
         streamInfoResult.setWs_ts(String.format("ws://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpPort(), app,  stream, callIdParam));
-        streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play%s", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app,  stream, ObjectUtils.isEmpty(callId)?"":"&callId=" + callId));
+        streamInfoResult.setRtc(String.format("http://%s:%s/index/api/webrtc?app=%s&stream=%s&type=%s%s", mediaInfo.getStreamIp(), mediaInfo.getHttpPort(), app,  stream, isPlay?"play":"push", ObjectUtils.isEmpty(callId)?"":"&callId=" + callId));
         if (mediaInfo.getHttpSSlPort() != 0) {
             streamInfoResult.setHttps_flv(String.format("https://%s:%s/%s/%s.live.flv%s", addr, mediaInfo.getHttpSSlPort(), app,  stream, callIdParam));
             streamInfoResult.setWss_flv(String.format("wss://%s:%s/%s/%s.live.flv%s", addr, mediaInfo.getHttpSSlPort(), app,  stream, callIdParam));
@@ -119,7 +119,7 @@
             streamInfoResult.setHttps_ts(String.format("https://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app,  stream, callIdParam));
             streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app,  stream, callIdParam));
             streamInfoResult.setWss_ts(String.format("wss://%s:%s/%s/%s.live.ts%s", addr, mediaInfo.getHttpSSlPort(), app,  stream, callIdParam));
-            streamInfoResult.setRtcs(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=play%s", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app,  stream, ObjectUtils.isEmpty(callId)?"":"&callId=" + callId));
+            streamInfoResult.setRtcs(String.format("https://%s:%s/index/api/webrtc?app=%s&stream=%s&type=%s%s", mediaInfo.getStreamIp(), mediaInfo.getHttpSSlPort(), app,  stream, isPlay?"play":"push", ObjectUtils.isEmpty(callId)?"":"&callId=" + callId));
         }
 
         streamInfoResult.setTracks(tracks);
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
index 2fcc9c2..9d6ba36 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
@@ -266,12 +266,11 @@
 	@Parameter(name = "channelId", description = "閫氶亾Id", required = true)
 	@GetMapping("/broadcast/stop/{deviceId}/{channelId}")
 	@PostMapping("/broadcast/stop/{deviceId}/{channelId}")
-	public WVPResult<String> stopBroadcastA(@PathVariable String deviceId, @PathVariable String channelId) {
+	public void stopBroadcastA(@PathVariable String deviceId, @PathVariable String channelId) {
 		if (logger.isDebugEnabled()) {
 			logger.debug("鍋滄璇煶骞挎挱API璋冪敤");
 		}
 		playService.stopAudioBroadcast(deviceId, channelId);
-		return new WVPResult<>(0, "success", null);
 	}
 
 	@Operation(summary = "鑾峰彇鎵�鏈夌殑ssrc")
diff --git a/web_src/src/components/dialog/devicePlayer.vue b/web_src/src/components/dialog/devicePlayer.vue
index 2d3818a..fac02fd 100644
--- a/web_src/src/components/dialog/devicePlayer.vue
+++ b/web_src/src/components/dialog/devicePlayer.vue
@@ -1,7 +1,7 @@
 <template>
 <div id="devicePlayer" v-loading="isLoging">
 
-    <el-dialog title="瑙嗛鎾斁" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" @close="close()">
+    <el-dialog title="瑙嗛鎾斁" top="0" :close-on-click-modal="false" :visible.sync="showVideoDialog" :destroy-on-close="true" @close="close()">
         <!-- <LivePlayer v-if="showVideoDialog" ref="videoPlayer" :videoUrl="videoUrl" :error="videoError" :message="videoError" :hasaudio="hasaudio" fluent autoplay live></LivePlayer> -->
       <div style="width: 100%; height: 100%">
         <el-tabs type="card" :stretch="true" v-model="activePlayer" @tab-click="changePlayer" v-if="Object.keys(this.player).length > 1">
@@ -319,7 +319,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 +334,7 @@
             // 濡備綍浣犲彧鏄敤涓�绉嶆挱鏀惧櫒锛岀洿鎺ユ敞閲婃帀涓嶇敤鐨勯儴鍒嗗嵆鍙�
             player: {
               jessibuca : ["ws_flv", "wss_flv"],
-              webRTC: ["rtc", "rtc"],
+              webRTC: ["rtc", "rtcs"],
             },
             videoHistory: {
                 date: '',
@@ -540,9 +542,7 @@
               this.stopPlayRecord();
             }
             this.recordPlay = ''
-            if (this.broadcastStatus === 1) {
-              this.stopBroadcast()
-            }
+            this.stopBroadcast()
         },
 
         copySharedInfo: function (data) {
@@ -857,7 +857,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,
@@ -958,23 +963,28 @@
 
         },
         stopBroadcast(){
-          this.broadcastStatus = -2;
-          this.broadcastRtc = null;
-          this.$axios({
-            method: 'get',
-            url: '/api/play/broadcast/stop/' + this.deviceId + '/' + this.channelId
-          }).then( (res)=> {
-            if (res.data.code == 0) {
-              // this.broadcastStatus = -1;
-              // this.broadcastRtc.close()
-            }else {
-              this.$message({
-                showClose: true,
-                message: res.data.msg,
-                type: "error",
-              });
-            }
-          });
+          if (this.broadcastStatus === -1) {
+            this.broadcastStatus = 1;
+          }else {
+            this.broadcastStatus = -2;
+            this.broadcastRtc = null;
+            this.$axios({
+              method: 'get',
+              url: '/api/play/broadcast/stop/' + this.deviceId + '/' + this.channelId
+            }).then( (res)=> {
+              if (res.data.code == 0) {
+                // this.broadcastStatus = -1;
+                // this.broadcastRtc.close()
+              }else {
+                this.$message({
+                  showClose: true,
+                  message: res.data.msg,
+                  type: "error",
+                });
+              }
+            });
+          }
+
 
         }
     }

--
Gitblit v1.8.0