From 21506440d22a2f77d4bbeb4bb646a27b03bb9022 Mon Sep 17 00:00:00 2001 From: mrjackwang <30337754+mrjackwang@users.noreply.github.com> Date: 星期一, 07 三月 2022 09:01:14 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 33 ++++++++++++++++++--------------- 1 files changed, 18 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 14705bc..d325075 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -83,6 +83,9 @@ @Autowired private MediaConfig mediaConfig; + @Autowired + private ZLMRESTfulUtils zlmresTfulUtils; + /** * 鏈嶅姟鍣ㄥ畾鏃朵笂鎶ユ椂闂达紝涓婃姤闂撮殧鍙厤缃紝榛樿10s涓婃姤涓�娆� * @@ -470,6 +473,18 @@ streamProxyService.del(app, streamId); String url = streamProxyItem.getUrl() != null?streamProxyItem.getUrl():streamProxyItem.getSrc_url(); logger.info("[{}/{}]<-[{}] 鎷夋祦浠g悊鏃犱汉瑙傜湅宸茬粡绉婚櫎", app, streamId, url); + + }else if (streamProxyItem != null && streamProxyItem.isEnable()) { + MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId); + if(null!=mediaServerItem){ + JSONObject jsonObject = zlmresTfulUtils.closeStreams(mediaServerItem,streamProxyItem.getApp(), streamProxyItem.getStream()); + if (jsonObject.getInteger("code") == 0) { + streamProxyItem.setEnable(false); + storager.updateStreamProxy(streamProxyItem); + } + }else { + ret.put("close", false); + } }else { ret.put("close", false); } @@ -489,7 +504,7 @@ } String mediaServerId = json.getString("mediaServerId"); MediaServerItem mediaInfo = mediaServerService.getOne(mediaServerId); - if (userSetup.isAutoApplyPlay() && mediaInfo != null) { + if (userSetup.isAutoApplyPlay() && mediaInfo != null && mediaInfo.isRtpEnable()) { String app = json.getString("app"); String streamId = json.getString("stream"); if ("rtp".equals(app)) { @@ -499,28 +514,16 @@ String channelId = s[1]; Device device = redisCatchStorage.getDevice(deviceId); if (device != null) { - UUID uuid = UUID.randomUUID(); - SSRCInfo ssrcInfo; - String streamId2 = null; - if (mediaInfo.isRtpEnable()) { - streamId2 = String.format("%s_%s", device.getDeviceId(), channelId); - } - ssrcInfo = mediaServerService.openRTPServer(mediaInfo, streamId2); - cmder.playStreamCmd(mediaInfo, ssrcInfo, device, channelId, (MediaServerItem mediaServerItemInuse, JSONObject response) -> { - logger.info("鏀跺埌璁㈤槄娑堟伅锛� " + response.toJSONString()); - playService.onPublishHandlerForPlay(mediaServerItemInuse, response, deviceId, channelId, uuid.toString()); - }, null); + playService.play(mediaInfo,deviceId, channelId, null, null, null); } - } } - } JSONObject ret = new JSONObject(); ret.put("code", 0); ret.put("msg", "success"); - return new ResponseEntity<String>(ret.toString(),HttpStatus.OK); + return new ResponseEntity<>(ret.toString(),HttpStatus.OK); } /** -- Gitblit v1.8.0