From 1e1364e51a66614469b91e396d33a54bdf8f6e98 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 17 十月 2022 14:33:25 +0800 Subject: [PATCH] 修复开始点播功能接口调用返回参数与定义的不符 #635 --- src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java | 79 +++++++++++++++++++++++++++++++-------- 1 files changed, 62 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java index 72cefe1..35ff08e 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java @@ -1,17 +1,27 @@ package com.genersoft.iot.vmp.conf; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.utils.DateUtil; +import com.genersoft.iot.vmp.vmanager.gb28181.device.DeviceQuery; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; -import java.text.SimpleDateFormat; -import java.util.Date; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.regex.Pattern; + @Configuration("mediaConfig") public class MediaConfig{ - @Value("${media.id:}") + private final static Logger logger = LoggerFactory.getLogger(MediaConfig.class); + + // 淇敼蹇呴』閰嶇疆锛屼笉鍐嶆敮鎸佽嚜鍔ㄨ幏鍙� + @Value("${media.id}") private String id; @Value("${media.ip}") @@ -59,14 +69,18 @@ @Value("${media.secret}") private String secret; - @Value("${media.stream-none-reader-delay-ms:18000}") - private String streamNoneReaderDelayMS = "18000"; + @Value("${media.stream-none-reader-delay-ms:15000}") + private int streamNoneReaderDelayMS = 15000; @Value("${media.rtp.enable}") private boolean rtpEnable; @Value("${media.rtp.port-range}") private String rtpPortRange; + + + @Value("${media.rtp.send-port-range}") + private String sendRtpPortRange; @Value("${media.record-assist-port:0}") private Integer recordAssistPort = 0; @@ -80,7 +94,7 @@ } public String getHookIp() { - if (StringUtils.isEmpty(hookIp)){ + if (ObjectUtils.isEmpty(hookIp)){ return sipIp; }else { return hookIp; @@ -89,7 +103,11 @@ } public String getSipIp() { - return sipIp; + if (sipIp == null) { + return this.ip; + }else { + return sipIp; + } } public int getHttpPort() { @@ -133,7 +151,7 @@ return secret; } - public String getStreamNoneReaderDelayMS() { + public int getStreamNoneReaderDelayMS() { return streamNoneReaderDelayMS; } @@ -150,19 +168,38 @@ } public String getSdpIp() { - if (StringUtils.isEmpty(sdpIp)){ + if (ObjectUtils.isEmpty(sdpIp)){ return ip; }else { - return sdpIp; + if (isValidIPAddress(sdpIp)) { + return sdpIp; + }else { + // 鎸夌収鍩熷悕瑙f瀽 + String hostAddress = null; + try { + hostAddress = InetAddress.getByName(sdpIp).getHostAddress(); + } catch (UnknownHostException e) { + logger.error("[鑾峰彇SDP IP]: 鍩熷悕瑙f瀽澶辫触"); + } + return hostAddress; + } } } public String getStreamIp() { - if (StringUtils.isEmpty(streamIp)){ + if (ObjectUtils.isEmpty(streamIp)){ return ip; }else { return streamIp; } + } + + public String getSipDomain() { + return sipDomain; + } + + public String getSendRtpPortRange() { + return sendRtpPortRange; } public MediaServerItem getMediaSerItem(){ @@ -171,13 +208,13 @@ mediaServerItem.setIp(ip); mediaServerItem.setDefaultServer(true); mediaServerItem.setHookIp(getHookIp()); - mediaServerItem.setSdpIp(sdpIp); - mediaServerItem.setStreamIp(streamIp); + mediaServerItem.setSdpIp(getSdpIp()); + mediaServerItem.setStreamIp(getStreamIp()); mediaServerItem.setHttpPort(httpPort); mediaServerItem.setHttpSSlPort(httpSSlPort); mediaServerItem.setRtmpPort(rtmpPort); mediaServerItem.setRtmpSSlPort(rtmpSSlPort); - mediaServerItem.setRtpProxyPort(rtpProxyPort); + mediaServerItem.setRtpProxyPort(getRtpProxyPort()); mediaServerItem.setRtspPort(rtspPort); mediaServerItem.setRtspSSLPort(rtspSSLPort); mediaServerItem.setAutoConfig(autoConfig); @@ -185,13 +222,21 @@ mediaServerItem.setStreamNoneReaderDelayMS(streamNoneReaderDelayMS); mediaServerItem.setRtpEnable(rtpEnable); mediaServerItem.setRtpPortRange(rtpPortRange); + mediaServerItem.setSendRtpPortRange(sendRtpPortRange); mediaServerItem.setRecordAssistPort(recordAssistPort); + mediaServerItem.setHookAliveInterval(120); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - mediaServerItem.setCreateTime(format.format(System.currentTimeMillis())); - mediaServerItem.setUpdateTime(format.format(System.currentTimeMillis())); + mediaServerItem.setCreateTime(DateUtil.getNow()); + mediaServerItem.setUpdateTime(DateUtil.getNow()); return mediaServerItem; } + private boolean isValidIPAddress(String ipAddress) { + if ((ipAddress != null) && (!ipAddress.isEmpty())) { + return Pattern.matches("^([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$", ipAddress); + } + return false; + } + } -- Gitblit v1.8.0