From 76817b8c752b12030ab285bcb5b2effebfa9a248 Mon Sep 17 00:00:00 2001 From: ‘liusuyi’ <1951119284@qq.com> Date: 星期六, 26 八月 2023 17:29:14 +0800 Subject: [PATCH] 流媒体增加webrtc和rtmp协议推拉流 --- ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java | 31 +++++++++++++++++++++++-------- 1 files changed, 23 insertions(+), 8 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java index 1ec2e16..ca50877 100644 --- a/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java +++ b/ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java @@ -17,6 +17,9 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** * @Description: @@ -38,17 +41,16 @@ @PreAuthorize("@ss.hasPermi('media:stream:add')") @ApiOperationSupport(includeParameters = {"streamInfo.name", "streamInfo.rtspSource", "streamInfo.mode"}) public AjaxResult addPath(@RequestBody StreamInfo streamInfo) { - if(StringUtils.isEmpty(streamInfo.getName())) - { + if (StringUtils.isEmpty(streamInfo.getName())) { return AjaxResult.error("閫氶亾鍚嶇О涓嶈兘涓虹┖"); } - if(StringUtils.isEmpty(streamInfo.getRtspSource())) - { + if (StringUtils.isEmpty(streamInfo.getRtspSource())) { return AjaxResult.error("rtsp鍦板潃涓嶈兘涓虹┖"); } - String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(),streamInfo.getIsCode()); + String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); return AjaxResult.success(rtsp); } + /** * 鑾峰彇杞爜璇︾粏淇℃伅 */ @@ -57,6 +59,7 @@ public AjaxResult getInfo(@PathVariable("name") String name) { return success(mediaService.getPathInfo(name)); } + /** * 淇敼杞爜 */ @@ -65,14 +68,14 @@ @PutMapping public AjaxResult edit(@RequestBody StreamInfo streamInfo) { mediaService.removePath(new String[]{streamInfo.getName()}); - String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(),streamInfo.getIsCode()); + String rtsp = mediaService.addPath(streamInfo.getName(), streamInfo.getRtspSource(), streamInfo.getMode(), streamInfo.getIsCode()); return AjaxResult.success(rtsp); } @DeleteMapping("/path/{names}") @PreAuthorize("@ss.hasPermi('media:stream:remove')") @ApiOperation("绉婚櫎杞爜") - public AjaxResult removePath( @PathVariable String[] names) { + public AjaxResult removePath(@PathVariable String[] names) { mediaService.removePath(names); return AjaxResult.success(); } @@ -128,7 +131,19 @@ @PreAuthorize("@ss.hasPermi('media:stream:remove')") @DeleteMapping("/{id}") public AjaxResult removePullStreamSession(@PathVariable String id) { - return AjaxResult.success(mediaService.kickRtspSession(id)); + List<StreamInfo> pullStreamList = mediaService.getPullStreamList(); + StreamInfo streamInfo = pullStreamList.stream() + .filter(object -> object.getId().equals(id)) + .collect(Collectors.toList()).get(0); + switch (streamInfo.getSessionType()) { + case "rtsp": + return AjaxResult.success(mediaService.kickRtspSession(id)); + case "webrtc": + return AjaxResult.success(mediaService.kickWebrtcSession(id)); + case "rtmp": + return AjaxResult.success(mediaService.kickRtmpSession(id)); + } + return AjaxResult.error(); } @PreAuthorize("@ss.hasPermi('media:stream:list')") -- Gitblit v1.9.3