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