From a915897c530460f3c4463c34e242e6407fcdcb4c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 07 八月 2024 09:38:48 +0800
Subject: [PATCH] 兼容arm zlm 无法获取到Params的问题
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
index a676fb9..a1d302a 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -47,7 +47,10 @@
import javax.servlet.http.HttpServletRequest;
import javax.sip.InvalidArgumentException;
import javax.sip.SipException;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.text.ParseException;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@@ -377,10 +380,27 @@
redisCatchStorage.updateStreamAuthorityInfo(param.getApp(), param.getStream(), streamAuthorityInfo);
if (!"broadcast".equals(param.getApp()) && !"talk".equals(param.getApp())) {
- Map<String, String> params = MediaServerUtils.urlParamToMap(param.getParams());
- param.setParamMap(params);
+ String paramsStr = param.getParams();
+ if (paramsStr == null) {
+ // 鍏煎arm zlm 鏃犳硶鑾峰彇鍒癙arams鐨勯棶棰�
+ URL url = null;
+ try {
+ url = new URL("http" + param.getOriginUrl().substring(4));
+ } catch (MalformedURLException ignored) {}
+ if (url != null) {
+ paramsStr = url.getQuery();
+ }
+ }
+ if (paramsStr != null) {
+ Map<String, String> params = MediaServerUtils.urlParamToMap(paramsStr);
+ param.setParamMap(params);
+ }else {
+ param.setParamMap(new HashMap<>());
+ logger.warn("鑾峰彇鎺ㄦ祦鐨刾arams淇℃伅澶辫触");
+ }
+
StreamInfo streamInfoByAppAndStream = mediaService.getStreamInfoByAppAndStream(mediaInfo,
- param.getApp(), param.getStream(), tracks, params.get("callId"));
+ param.getApp(), param.getStream(), tracks, param.getParamMap().get("callId"));
param.setStreamInfo(new StreamContent(streamInfoByAppAndStream));
param.setSeverId(userSetting.getServerId());
--
Gitblit v1.8.0