diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java index 958cc6895d61f9f90d6a36023206e4fa729422ad..c8d2d4b178a63ac52117f6539bba0b9230fa16e5 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java @@ -35,6 +35,8 @@ import org.springframework.web.context.request.async.DeferredResult; 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.List; import java.util.UUID; @@ -113,9 +115,16 @@ public class PlayController { resultStream.setCode(wvpResult1.getCode()); resultStream.setMsg(wvpResult1.getMsg()); if (wvpResult1.getCode() == ErrorCode.SUCCESS.getCode()) { - StreamInfo data = wvpResult1.getData().clone(); if (userSetting.getUseSourceIpAsStreamIp()) { - data.channgeStreamIp(request.getLocalName()); + StreamInfo data = wvpResult1.getData().clone(); + String host=""; + try { + URL url = new URL(request.getRequestURL().toString()); + host=url.getHost(); + } catch (MalformedURLException e) { + host=request.getLocalName(); + } + data.channgeStreamIp(host); } resultStream.setData(new StreamContent(wvpResult1.getData())); } diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java index 8bab3fd0c8ffc750dfa63ba37acf4f3764490258..f89bf6acfa28ad19e6eaa2370f654f1bbbbf1cff 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java @@ -31,8 +31,11 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import org.springframework.web.context.request.async.DeferredResult; +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.UUID; @@ -74,8 +77,8 @@ public class PlaybackController { @Parameter(name = "startTime", description = "开始时间", required = true) @Parameter(name = "endTime", description = "结束时间", required = true) @GetMapping("/start/{deviceId}/{channelId}") - public DeferredResult> start(@PathVariable String deviceId, @PathVariable String channelId, - String startTime, String endTime) { + public DeferredResult> start(HttpServletRequest request, @PathVariable String deviceId, @PathVariable String channelId, + String startTime, String endTime) { if (logger.isDebugEnabled()) { logger.debug(String.format("设备回放 API调用,deviceId:%s ,channelId:%s", deviceId, channelId)); @@ -97,6 +100,17 @@ public class PlaybackController { wvpResult.setCode(playBackResult.getCode()); wvpResult.setMsg(playBackResult.getMsg()); if (playBackResult.getCode() == ErrorCode.SUCCESS.getCode()) { + if (userSetting.getUseSourceIpAsStreamIp()) { + StreamInfo data = ((StreamInfo)playBackResult.getData()).clone(); + String host=""; + try { + URL url = new URL(request.getRequestURL().toString()); + host=url.getHost(); + } catch (MalformedURLException e) { + host=request.getLocalName(); + } + data.channgeStreamIp(host); + } StreamInfo streamInfo = (StreamInfo)playBackResult.getData(); wvpResult.setData(new StreamContent(streamInfo)); }