648540858
2024-08-07 a915897c530460f3c4463c34e242e6407fcdcb4c
兼容arm zlm 无法获取到Params的问题
1个文件已修改
26 ■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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 无法获取到Params的问题
                            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("获取推流的params信息失败");
                        }
                        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());