Pre Merge pull request !23 from 廖斌/wvp-28181-2.0

This commit is contained in:
廖斌 2023-05-04 09:03:52 +00:00 committed by Gitee
commit 85710dd707
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
2 changed files with 27 additions and 4 deletions

View File

@ -35,6 +35,8 @@ import org.springframework.web.context.request.async.DeferredResult;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.sip.InvalidArgumentException; import javax.sip.InvalidArgumentException;
import javax.sip.SipException; import javax.sip.SipException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException; import java.text.ParseException;
import java.util.List; import java.util.List;
import java.util.UUID; import java.util.UUID;
@ -113,9 +115,16 @@ public class PlayController {
resultStream.setCode(wvpResult1.getCode()); resultStream.setCode(wvpResult1.getCode());
resultStream.setMsg(wvpResult1.getMsg()); resultStream.setMsg(wvpResult1.getMsg());
if (wvpResult1.getCode() == ErrorCode.SUCCESS.getCode()) { if (wvpResult1.getCode() == ErrorCode.SUCCESS.getCode()) {
StreamInfo data = wvpResult1.getData().clone();
if (userSetting.getUseSourceIpAsStreamIp()) { 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())); resultStream.setData(new StreamContent(wvpResult1.getData()));
} }

View File

@ -31,8 +31,11 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
import org.springframework.web.context.request.async.DeferredResult; import org.springframework.web.context.request.async.DeferredResult;
import javax.servlet.http.HttpServletRequest;
import javax.sip.InvalidArgumentException; import javax.sip.InvalidArgumentException;
import javax.sip.SipException; import javax.sip.SipException;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.ParseException; import java.text.ParseException;
import java.util.UUID; import java.util.UUID;
@ -74,8 +77,8 @@ public class PlaybackController {
@Parameter(name = "startTime", description = "开始时间", required = true) @Parameter(name = "startTime", description = "开始时间", required = true)
@Parameter(name = "endTime", description = "结束时间", required = true) @Parameter(name = "endTime", description = "结束时间", required = true)
@GetMapping("/start/{deviceId}/{channelId}") @GetMapping("/start/{deviceId}/{channelId}")
public DeferredResult<WVPResult<StreamContent>> start(@PathVariable String deviceId, @PathVariable String channelId, public DeferredResult<WVPResult<StreamContent>> start(HttpServletRequest request, @PathVariable String deviceId, @PathVariable String channelId,
String startTime, String endTime) { String startTime, String endTime) {
if (logger.isDebugEnabled()) { if (logger.isDebugEnabled()) {
logger.debug(String.format("设备回放 API调用deviceId%s channelId%s", deviceId, channelId)); logger.debug(String.format("设备回放 API调用deviceId%s channelId%s", deviceId, channelId));
@ -97,6 +100,17 @@ public class PlaybackController {
wvpResult.setCode(playBackResult.getCode()); wvpResult.setCode(playBackResult.getCode());
wvpResult.setMsg(playBackResult.getMsg()); wvpResult.setMsg(playBackResult.getMsg());
if (playBackResult.getCode() == ErrorCode.SUCCESS.getCode()) { 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(); StreamInfo streamInfo = (StreamInfo)playBackResult.getData();
wvpResult.setData(new StreamContent(streamInfo)); wvpResult.setData(new StreamContent(streamInfo));
} }