From ca16a79255f27709f88abc59bea362abdd1e2cc7 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期六, 07 五月 2022 09:52:02 +0800 Subject: [PATCH] 添加语音发送通道和语音接收通道字段 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java | 41 ++++++++++++++++++++++++----------------- 1 files changed, 24 insertions(+), 17 deletions(-) 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 8350d29..dc88da0 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 @@ -33,13 +33,11 @@ import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import org.springframework.web.context.request.async.DeferredResult; import java.util.List; import java.util.UUID; - -import javax.sip.message.Response; @Api(tags = "鍥芥爣璁惧鐐规挱") @CrossOrigin @@ -56,7 +54,7 @@ private VideoStreamSessionManager streamSession; @Autowired - private IVideoManagerStorager storager; + private IVideoManagerStorage storager; @Autowired private IRedisCatchStorage redisCatchStorage; @@ -88,7 +86,7 @@ // 鑾峰彇鍙敤鐨剒lm Device device = storager.queryVideoDevice(deviceId); MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); - PlayResult playResult = playService.play(newMediaServerItem, deviceId, channelId, null, null); + PlayResult playResult = playService.play(newMediaServerItem, deviceId, channelId, null, null, null); return playResult.getResult(); } @@ -109,7 +107,6 @@ // 褰曞儚鏌ヨ浠hannelId浣滀负deviceId鏌ヨ String key = DeferredResultHolder.CALLBACK_CMD_STOP + deviceId + channelId; resultHolder.put(key, uuid, result); - Device device = storager.queryVideoDevice(deviceId); StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId); if (streamInfo == null) { RequestMessage msg = new RequestMessage(); @@ -120,16 +117,14 @@ storager.stopPlay(deviceId, channelId); return result; } - cmder.streamByeCmd(deviceId, channelId, streamInfo.getStream(), (event) -> { + cmder.streamByeCmd(deviceId, channelId, streamInfo.getStream(), null, eventResult -> { redisCatchStorage.stopPlay(streamInfo); storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId()); - RequestMessage msg = new RequestMessage(); - msg.setId(uuid); - msg.setKey(key); - //Response response = event.getResponse(); - msg.setData(String.format("success")); - resultHolder.invokeAllResult(msg); - mediaServerService.closeRTPServer(device, channelId, streamInfo.getStream()); + RequestMessage msgForSuccess = new RequestMessage(); + msgForSuccess.setId(uuid); + msgForSuccess.setKey(key); + msgForSuccess.setData(String.format("success")); + resultHolder.invokeAllResult(msgForSuccess); }); if (deviceId != null || channelId != null) { @@ -175,7 +170,7 @@ public ResponseEntity<String> playConvert(@PathVariable String streamId) { StreamInfo streamInfo = redisCatchStorage.queryPlayByStreamId(streamId); if (streamInfo == null) { - streamInfo = redisCatchStorage.queryPlaybackByStreamId(streamId); + streamInfo = redisCatchStorage.queryPlayback(null, null, streamId, null); } if (streamInfo == null) { logger.warn("瑙嗛杞爜API璋冪敤澶辫触锛�, 瑙嗛娴佸凡缁忓仠姝�!"); @@ -256,20 +251,32 @@ @ApiOperation("璇煶骞挎挱鍛戒护") @ApiImplicitParams({ @ApiImplicitParam(name = "deviceId", value = "璁惧Id", dataTypeClass = String.class), + @ApiImplicitParam(name = "channelForSend", value = "璁惧鐢ㄤ簬鍙戦�佽闊虫暟鎹殑閫氶亾", dataTypeClass = String.class), + @ApiImplicitParam(name = "channelForReceive", value = "璁惧鐢ㄤ簬鎺ユ敹璇煶鏁版嵁鐨勯�氶亾", dataTypeClass = String.class), }) @GetMapping("/broadcast/{deviceId}") @PostMapping("/broadcast/{deviceId}") - public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId) { + public DeferredResult<ResponseEntity<String>> broadcastApi(@PathVariable String deviceId, + String channelForSend, + String channelForReceive) { if (logger.isDebugEnabled()) { logger.debug("璇煶骞挎挱API璋冪敤"); } Device device = storager.queryVideoDevice(deviceId); - DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(3 * 1000L); + DeferredResult<ResponseEntity<String>> result = new DeferredResult<>(3 * 1000L); String key = DeferredResultHolder.CALLBACK_CMD_BROADCAST + deviceId; if (resultHolder.exist(key, null)) { result.setResult(new ResponseEntity<>("璁惧浣跨敤涓�",HttpStatus.OK)); return result; } + +// playService.audioBroadcast(deviceId, channelForSend, channelForReceive); + + + + + + String uuid = UUID.randomUUID().toString(); if (device == null) { -- Gitblit v1.8.0