From a45fab423bab8e0ce6f1d2a270dfa19a6130193f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 05 六月 2023 15:01:20 +0800
Subject: [PATCH] 修复国标级联语音对讲
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java | 27 ++++++++++++++-------------
1 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
index b876cf9..8e0e201 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/media/MediaController.java
@@ -5,11 +5,11 @@
import com.genersoft.iot.vmp.conf.security.SecurityUtils;
import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
-import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.service.IMediaService;
+import com.genersoft.iot.vmp.service.IStreamProxyService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
-import com.genersoft.iot.vmp.vmanager.bean.WVPResult;
+import com.genersoft.iot.vmp.vmanager.bean.StreamContent;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
@@ -24,7 +24,7 @@
@Tag(name = "濯掍綋娴佺浉鍏�")
@Controller
-@CrossOrigin
+
@RequestMapping(value = "/api/media")
public class MediaController {
@@ -53,16 +53,18 @@
@Parameter(name = "useSourceIpAsStreamIp", description = "鏄惁浣跨敤璇锋眰IP浣滀负杩斿洖鐨勫湴鍧�IP")
@GetMapping(value = "/stream_info_by_app_and_stream")
@ResponseBody
- public StreamInfo getStreamInfoByAppAndStream(HttpServletRequest request, @RequestParam String app,
- @RequestParam String stream,
- @RequestParam(required = false) String mediaServerId,
- @RequestParam(required = false) String callId,
- @RequestParam(required = false) Boolean useSourceIpAsStreamIp){
+ public StreamContent getStreamInfoByAppAndStream(HttpServletRequest request, @RequestParam String app,
+ @RequestParam String stream,
+ @RequestParam(required = false) String mediaServerId,
+ @RequestParam(required = false) String callId,
+ @RequestParam(required = false) Boolean useSourceIpAsStreamIp){
boolean authority = false;
if (callId != null) {
// 鏉冮檺鏍¢獙
StreamAuthorityInfo streamAuthorityInfo = redisCatchStorage.getStreamAuthorityInfo(app, stream);
- if (streamAuthorityInfo.getCallId().equals(callId)) {
+ if (streamAuthorityInfo != null
+ && streamAuthorityInfo.getCallId() != null
+ && streamAuthorityInfo.getCallId().equals(callId)) {
authority = true;
}else {
throw new ControllerException(ErrorCode.ERROR400);
@@ -86,9 +88,8 @@
streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
}
- WVPResult<StreamInfo> result = new WVPResult<>();
if (streamInfo != null){
- return streamInfo;
+ return new StreamContent(streamInfo);
}else {
//鑾峰彇娴佸け璐ワ紝閲嶅惎鎷夋祦鍚庨噸璇曚竴娆�
streamProxyService.stop(app,stream);
@@ -96,7 +97,7 @@
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
- e.printStackTrace();
+ logger.error("[绾跨▼浼戠湢澶辫触]锛� {}", e.getMessage());
}
if (useSourceIpAsStreamIp != null && useSourceIpAsStreamIp) {
String host = request.getHeader("Host");
@@ -107,7 +108,7 @@
streamInfo = mediaService.getStreamInfoByAppAndStreamWithCheck(app, stream, mediaServerId, authority);
}
if (streamInfo != null){
- return streamInfo;
+ return new StreamContent(streamInfo);
}else {
throw new ControllerException(ErrorCode.ERROR100);
}
--
Gitblit v1.8.0