From 87e7d0026f2a0feae169f103f90256005968b6aa Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: 星期五, 23 七月 2021 16:56:32 +0800 Subject: [PATCH] 解决@value注解无法赋默认值问题 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java | 35 ++++++++++++++++++++++++----------- 1 files changed, 24 insertions(+), 11 deletions(-) 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 f55083e..d2a30fa 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 @@ -4,6 +4,8 @@ import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage; //import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; +import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.service.IPlayService; import io.swagger.annotations.Api; @@ -71,7 +73,7 @@ logger.debug(String.format("璁惧鍥炴斁 API璋冪敤锛宒eviceId锛�%s 锛宑hannelId锛�%s", deviceId, channelId)); } UUID uuid = UUID.randomUUID(); - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(); + DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(30000L); // 瓒呮椂澶勭悊 result.onTimeout(()->{ logger.warn(String.format("璁惧鍥炴斁瓒呮椂锛宒eviceId锛�%s 锛宑hannelId锛�%s", deviceId, channelId)); @@ -84,12 +86,21 @@ StreamInfo streamInfo = redisCatchStorage.queryPlaybackByDevice(deviceId, channelId); if (streamInfo != null) { // 鍋滄涔嬪墠鐨勫洖鏀� - cmder.streamByeCmd(streamInfo.getStreamId()); + cmder.streamByeCmd(deviceId, channelId); } resultHolder.put(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid, result); - cmder.playbackStreamCmd(device, channelId, startTime, endTime, (JSONObject response) -> { + IMediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); + if (newMediaServerItem == null) { + logger.warn(String.format("璁惧鍥炴斁瓒呮椂锛宒eviceId锛�%s 锛宑hannelId锛�%s", deviceId, channelId)); + RequestMessage msg = new RequestMessage(); + msg.setId(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid); + msg.setData("Timeout"); + resultHolder.invokeResult(msg); + return result; + } + cmder.playbackStreamCmd(newMediaServerItem, device, channelId, startTime, endTime, (IMediaServerItem mediaServerItem, JSONObject response) -> { logger.info("鏀跺埌璁㈤槄娑堟伅锛� " + response.toJSONString()); - playService.onPublishHandlerForPlayBack(response, deviceId, channelId, uuid.toString()); + playService.onPublishHandlerForPlayBack(mediaServerItem, response, deviceId, channelId, uuid.toString()); }, event -> { Response response = event.getResponse(); RequestMessage msg = new RequestMessage(); @@ -103,20 +114,22 @@ @ApiOperation("鍋滄瑙嗛鍥炴斁") @ApiImplicitParams({ - @ApiImplicitParam(name = "ssrc", value = "瑙嗛娴佹爣璇�", dataTypeClass = String.class), + @ApiImplicitParam(name = "deviceId", value = "璁惧ID", dataTypeClass = String.class), + @ApiImplicitParam(name = "channelId", value = "閫氶亾ID", dataTypeClass = String.class), }) - @RequestMapping("/stop/{ssrc}") - public ResponseEntity<String> playStop(@PathVariable String ssrc) { + @GetMapping("/stop/{deviceId}/{channelId}") + public ResponseEntity<String> playStop(@PathVariable String deviceId, @PathVariable String channelId) { - cmder.streamByeCmd(ssrc); + cmder.streamByeCmd(deviceId, channelId); if (logger.isDebugEnabled()) { - logger.debug(String.format("璁惧褰曞儚鍥炴斁鍋滄 API璋冪敤锛宻src锛�%s", ssrc)); + logger.debug(String.format("璁惧褰曞儚鍥炴斁鍋滄 API璋冪敤锛宒eviceId/channelId锛�%s/%s", deviceId, channelId)); } - if (ssrc != null) { + if (deviceId != null && channelId != null) { JSONObject json = new JSONObject(); - json.put("ssrc", ssrc); + json.put("deviceId", deviceId); + json.put("channelId", channelId); return new ResponseEntity<String>(json.toString(), HttpStatus.OK); } else { logger.warn("璁惧褰曞儚鍥炴斁鍋滄API璋冪敤澶辫触锛�"); -- Gitblit v1.8.0