From b4048fbe80dba8e7756ae557a15ab60b4f80a44b Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 04 四月 2023 09:09:07 +0800
Subject: [PATCH] 合并开源主线

---
 src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java |   69 +++++++++++++---------------------
 1 files changed, 27 insertions(+), 42 deletions(-)

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 19b2adc..7727729 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
@@ -19,10 +19,7 @@
 import com.genersoft.iot.vmp.service.IPlayService;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
-import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx;
-import com.genersoft.iot.vmp.vmanager.bean.AudioBroadcastResult;
-import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
+import com.genersoft.iot.vmp.vmanager.bean.*;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -44,7 +41,7 @@
  * @author lin
  */
 @Tag(name  = "鍥芥爣璁惧鐐规挱")
-@CrossOrigin
+
 @RestController
 @RequestMapping("/api/play")
 public class PlayController {
@@ -85,8 +82,8 @@
 	@Parameter(name = "deviceId", description = "璁惧鍥芥爣缂栧彿", required = true)
 	@Parameter(name = "channelId", description = "閫氶亾鍥芥爣缂栧彿", required = true)
 	@GetMapping("/start/{deviceId}/{channelId}")
-	public DeferredResult<WVPResult<StreamInfo>> play(HttpServletRequest request, @PathVariable String deviceId,
-													  @PathVariable String channelId) {
+	public DeferredResult<WVPResult<StreamContent>> play(HttpServletRequest request, @PathVariable String deviceId,
+														 @PathVariable String channelId) {
 
 		// 鑾峰彇鍙敤鐨剒lm
 		Device device = storager.queryVideoDevice(deviceId);
@@ -98,8 +95,8 @@
 		msg.setKey(key);
 		String uuid = UUID.randomUUID().toString();
 		msg.setId(uuid);
-		DeferredResult<WVPResult<StreamInfo>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue());
-		DeferredResultEx<WVPResult<StreamInfo>> deferredResultEx = new DeferredResultEx<>(result);
+		DeferredResult<WVPResult<StreamContent>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue());
+		DeferredResultEx<WVPResult<StreamContent>> deferredResultEx = new DeferredResultEx<>(result);
 
 		result.onTimeout(()->{
 			logger.info("鐐规挱鎺ュ彛绛夊緟瓒呮椂");
@@ -110,25 +107,22 @@
 			msg.setData(wvpResult);
 			resultHolder.invokeResult(msg);
 		});
-
-		if (userSetting.getUseSourceIpAsStreamIp()) {
-			// TODO 鍦ㄧ偣鎾湭鎴愬姛鐨勬儏鍐典笅鍦ㄦ璋冪敤鎺ュ彛鐐规挱浼氬鑷磋繑鍥炵殑娴佸湴鍧�ip閿欒
-			deferredResultEx.setFilter(result1 -> {
-				WVPResult<StreamInfo> wvpResult1 = (WVPResult<StreamInfo>)result1;
-				WVPResult<StreamInfo> clone = null;
-				try {
-					clone = (WVPResult<StreamInfo>)wvpResult1.clone();
-				} catch (CloneNotSupportedException e) {
-					throw new RuntimeException(e);
-				}
-				if (clone.getCode() == ErrorCode.SUCCESS.getCode()) {
-					StreamInfo data = clone.getData().clone();
+		// TODO 鍦ㄧ偣鎾湭鎴愬姛鐨勬儏鍐典笅鍦ㄦ璋冪敤鎺ュ彛鐐规挱浼氬鑷磋繑鍥炵殑娴佸湴鍧�ip閿欒
+		deferredResultEx.setFilter(result1 -> {
+			WVPResult<StreamInfo> wvpResult1 = (WVPResult<StreamInfo>)result1;
+			WVPResult<StreamContent> resultStream = new WVPResult<>();
+			resultStream.setCode(wvpResult1.getCode());
+			resultStream.setMsg(wvpResult1.getMsg());
+			if (wvpResult1.getCode() == ErrorCode.SUCCESS.getCode()) {
+				StreamInfo data = wvpResult1.getData().clone();
+				if (userSetting.getUseSourceIpAsStreamIp()) {
 					data.channgeStreamIp(request.getLocalName());
-					clone.setData(data);
 				}
-				return clone;
-			});
-		}
+				resultStream.setData(new StreamContent(wvpResult1.getData()));
+			}
+			return resultStream;
+		});
+
 
 		// 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ
 		resultHolder.put(key, uuid, deferredResultEx);
@@ -255,11 +249,11 @@
 	@Parameter(name = "timeout", description = "鎺ㄦ祦瓒呮椂鏃堕棿(绉�)", required = true)
 	@GetMapping("/broadcast/{deviceId}/{channelId}")
 	@PostMapping("/broadcast/{deviceId}/{channelId}")
-    public AudioBroadcastResult broadcastApi(@PathVariable String deviceId, @PathVariable String channelId, Integer timeout) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("璇煶骞挎挱API璋冪敤");
-        }
-        Device device = storager.queryVideoDevice(deviceId);
+    public AudioBroadcastResult broadcastApi(@PathVariable String deviceId, @PathVariable String channelId, Integer timeout, Boolean broadcastMode) {
+		if (logger.isDebugEnabled()) {
+			logger.debug("璇煶骞挎挱API璋冪敤");
+		}
+		Device device = storager.queryVideoDevice(deviceId);
 		if (device == null) {
 			throw new ControllerException(ErrorCode.ERROR400.getCode(), "鏈壘鍒拌澶囷細 " + deviceId);
 		}
@@ -267,18 +261,9 @@
 			throw new ControllerException(ErrorCode.ERROR400.getCode(), "鏈壘鍒伴�氶亾锛� " + channelId);
 		}
 
-		return playService.audioBroadcast(device, channelId);
+		return playService.audioBroadcast(device, channelId, broadcastMode);
 
 	}
-
-	@GetMapping("/1111")
-	public void broadcastApi1() {
-		MediaServerItem defaultMediaServer = mediaServerService.getMediaServerForMinimumLoad();
-		Device device = storager.queryVideoDevice("34020000001320090001");
-		playService.talk(defaultMediaServer, device, "34020000001370000001", null, null, null);
-
-	}
-
 
 	@Operation(summary = "鍋滄璇煶骞挎挱")
 	@Parameter(name = "deviceId", description = "璁惧Id", required = true)
@@ -291,7 +276,7 @@
 		}
 //		try {
 //			playService.stopAudioBroadcast(deviceId, channelId);
-//		} catch (InvalidArgumentException | ParseException | SsrcTransactionNotFoundException | SipException e) {
+//		} catch (InvalidArgumentException | ParseException  | SipException e) {
 //			logger.error("[鍛戒护鍙戦�佸け璐 鍋滄璇煶: {}", e.getMessage());
 //			throw new ControllerException(ErrorCode.ERROR100.getCode(), "鍛戒护鍙戦�佸け璐�: " +  e.getMessage());
 //		}

--
Gitblit v1.8.0