fuliqi
2025-01-15 ab491a079ba4ab85ffef35d14c0767eba01455d8
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -36,6 +36,9 @@
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
/**
@@ -190,7 +193,15 @@
        }
    }
    /**
     * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。
     */
//    @ResponseBody
//    @PostMapping(value = "/on_stream_changed", produces = "application/json;charset=UTF-8")
//    public HookResult onStreamChanged(@RequestBody JSONObject param) {
//        System.out.println(11);
//        return HookResult.SUCCESS();
//    }
    /**
     * rtsp/rtmp流注册或注销时触发此事件;此事件对回复不敏感。
     */
@@ -210,6 +221,18 @@
        if (param.getSchema().equalsIgnoreCase("rtsp")) {
            if (param.isRegist()) {
                logger.info("[ZLM HOOK] 流注册, {}->{}->{}/{}", param.getMediaServerId(), param.getSchema(), param.getApp(), param.getStream());
                String queryParams = param.getParams();
                if (queryParams == null) {
                    try {
                        URL url = new URL("http" + param.getOriginUrl().substring(4));
                        queryParams = url.getQuery();
                    }catch (MalformedURLException ignored) {}
                }
                if (queryParams != null) {
                    param.setParamMap(MediaServerUtils.urlParamToMap(queryParams));
                }else {
                    param.setParamMap(new HashMap<>());
                }
                MediaArrivalEvent mediaArrivalEvent = MediaArrivalEvent.getInstance(this, param, mediaServer);
                applicationEventPublisher.publishEvent(mediaArrivalEvent);
            } else {