From 252e5230703e4355d25274d21b84f2d060907416 Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: 星期五, 14 七月 2023 21:49:39 +0800
Subject: [PATCH] 提交拉流取流查询接口

---
 ard-work/src/main/java/com/ruoyi/media/domain/Items.java               |    1 
 ard-work/src/main/java/com/ruoyi/media/controller/MediaController.java |   16 ++++++++
 ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java         |    4 +-
 ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java         |   23 +++++++++++
 ard-work/src/main/java/com/ruoyi/media/domain/Readers.java             |   16 ++++++++
 ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java      |    4 ++
 ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java  |   45 ++++++++++++++++++++++
 7 files changed, 107 insertions(+), 2 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 910cd71..72e1e2e 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
@@ -57,4 +57,20 @@
     public AjaxResult getRtspConns() {
         return AjaxResult.success(mediaService.rtspconns());
     }
+    @GetMapping("/getRtspSessionById")
+    @ApiOperation("鎸塈D鏌ヨ浼氳瘽")
+    public AjaxResult getRtspSessionById(String sessionId) {
+        return AjaxResult.success(mediaService.getRtspSessionById(sessionId));
+    }
+
+    @GetMapping("/getPushStreams")
+    @ApiOperation("鑾峰彇鎺ㄦ祦淇℃伅")
+    public AjaxResult getPushStreams() {
+        return AjaxResult.success(mediaService.getPushStreams());
+    }
+    @GetMapping("/getPullStreams")
+    @ApiOperation("鑾峰彇鎷夋祦淇℃伅")
+    public AjaxResult getPullStreams() {
+        return AjaxResult.success(mediaService.getPullStreams());
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/Items.java b/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
index 96b5c2e..522d282 100644
--- a/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/Items.java
@@ -21,6 +21,7 @@
     private String confName;
     private Conf conf;
     private Source source;
+    private List<Readers> readers;
     private boolean sourceReady;
     private List<String> tracks;
 
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java b/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java
new file mode 100644
index 0000000..58a4346
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/Readers.java
@@ -0,0 +1,16 @@
+package com.ruoyi.media.domain;
+
+import lombok.Data;
+
+/**
+ * @ClassName Readers
+ * @Description:
+ * @Author 鍒樿嫃涔�
+ * @Date 2023/7/14 21:04
+ * @Version 1.0
+ */
+@Data
+public class Readers {
+    private String type;
+    private String id;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java b/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java
new file mode 100644
index 0000000..26aebbd
--- /dev/null
+++ b/ard-work/src/main/java/com/ruoyi/media/domain/RtspSession.java
@@ -0,0 +1,23 @@
+package com.ruoyi.media.domain;
+
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName RtspSession
+ * @Description:
+ * @Author 鍒樿嫃涔�
+ * @Date 2023/7/14 21:19
+ * @Version 1.0
+ */
+@Data
+public class RtspSession {
+    private String cameraId;
+    private String id;
+    private Date created;
+    private String remoteAddr;
+    private String state;
+    private long bytesReceived;
+    private long bytesSent;
+}
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
index 37ac942..214c6b0 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/IMediaService.java
@@ -1,5 +1,6 @@
 package com.ruoyi.media.service;
 import com.ruoyi.media.domain.Items;
+import com.ruoyi.media.domain.RtspSession;
 
 import java.util.List;
 
@@ -10,4 +11,7 @@
     public List<Items>paths();
     public List<Items> rtspconns();
     public List<Items> rtspsessions();
+    RtspSession getRtspSessionById(String sessionId);
+    List<RtspSession>getPushStreams();
+    List<RtspSession>getPullStreams();
 }
diff --git a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
index 73a8650..00e5413 100644
--- a/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
+++ b/ard-work/src/main/java/com/ruoyi/media/service/impl/MediaService.java
@@ -8,6 +8,7 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -77,4 +78,48 @@
         JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
         return jsonsRoot.getItems();
     }
+
+    @Override
+    public RtspSession getRtspSessionById(String sessionId) {
+        String apiUrl="http://"+mediamtxHost+":9997/v2";
+        String list = mediaClient.getRtspsessionById(apiUrl,sessionId);
+        RtspSession rtspSession = JSONObject.parseObject(list, RtspSession.class);
+        return rtspSession;
+    }
+
+    @Override
+    public List<RtspSession> getPushStreams() {
+        List<RtspSession> rtspSessions=new ArrayList<>();
+        String apiUrl="http://"+mediamtxHost+":9997/v2";
+        String list = mediaClient.paths(apiUrl);
+        JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
+        List<Items> items = jsonsRoot.getItems();
+        for(Items item:items)
+        {
+            Source source = item.getSource();
+            RtspSession rtspSession = getRtspSessionById(source.getId());
+            rtspSession.setCameraId(item.getName());
+            rtspSessions.add(rtspSession);
+        }
+        return rtspSessions;
+    }
+
+    @Override
+    public List<RtspSession> getPullStreams() {
+        List<RtspSession> rtspSessions=new ArrayList<>();
+        String apiUrl="http://"+mediamtxHost+":9997/v2";
+        String list = mediaClient.paths(apiUrl);
+        JsonsRoot jsonsRoot = JSONObject.parseObject(list, JsonsRoot.class);
+        List<Items> items = jsonsRoot.getItems();
+        for(Items item:items)
+        {
+            List<Readers> readers = item.getReaders();
+            for(Readers reader:readers) {
+                RtspSession rtspSession = getRtspSessionById(reader.getId());
+                rtspSession.setCameraId(item.getName());
+                rtspSessions.add(rtspSession);
+            }
+        }
+        return rtspSessions;
+    }
 }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java b/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
index d0a9725..7cba8ac 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/forest/MediaClient.java
@@ -47,6 +47,6 @@
     /**
      * 鎸塱d鏌ヨrtsp浼氳瘽
      */
-    @Get("{apiUrl}/rtspsessions/get/{id}")
-    String rtspsessionsById(@Var("apiUrl") String apiUrl, @Var("id") String id);
+    @Get("{apiUrl}/rtspsessions/get/{sessionId}")
+    String getRtspsessionById(@Var("apiUrl") String apiUrl, @Var("sessionId") String sessionId);
 }

--
Gitblit v1.9.3