From b90dc789b429c31674c26bb3ff309b987afaa77a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 21 三月 2024 23:39:32 +0800
Subject: [PATCH] 优化媒体节点服务的代码结构

---
 src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java |   68 ++++++++++++++++++++-------------
 1 files changed, 41 insertions(+), 27 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/media/bean/Track.java b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
similarity index 69%
rename from src/main/java/com/genersoft/iot/vmp/media/bean/Track.java
rename to src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
index 963474e..d808772 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/bean/Track.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/bean/MediaInfo.java
@@ -11,7 +11,7 @@
  * 瑙嗛淇℃伅
  */
 @Schema(description = "瑙嗛淇℃伅")
-public class Track {
+public class MediaInfo {
     @Schema(description = "瑙傜湅浜烘暟")
     private Integer readerCount;
     @Schema(description = "瑙嗛缂栫爜绫诲瀷")
@@ -26,12 +26,14 @@
     private Integer audioChannels;
     @Schema(description = "闊抽閲囨牱鐜�")
     private Integer audioSampleRate;
+    @Schema(description = "闊抽閲囨牱鐜�")
+    private Long duration;
 
-    public static Track getInstance(JSONObject jsonObject) {
-        Track track = new Track();
+    public static MediaInfo getInstance(JSONObject jsonObject) {
+        MediaInfo mediaInfo = new MediaInfo();
         Integer totalReaderCount = jsonObject.getInteger("totalReaderCount");
         if (totalReaderCount != null) {
-            track.setReaderCount(totalReaderCount);
+            mediaInfo.setReaderCount(totalReaderCount);
         }
         JSONArray jsonArray = jsonObject.getJSONArray("tracks");
         if (jsonArray.isEmpty()) {
@@ -45,77 +47,81 @@
             Integer sampleRate = trackJson.getInteger("sample_rate");
             Integer height = trackJson.getInteger("height");
             Integer width = trackJson.getInteger("height");
+            Long duration = trackJson.getLongValue("duration");
             if (channels != null) {
-                track.setAudioChannels(channels);
+                mediaInfo.setAudioChannels(channels);
             }
             if (sampleRate != null) {
-                track.setAudioSampleRate(sampleRate);
+                mediaInfo.setAudioSampleRate(sampleRate);
             }
             if (height != null) {
-                track.setHeight(height);
+                mediaInfo.setHeight(height);
             }
             if (width != null) {
-                track.setWidth(width);
+                mediaInfo.setWidth(width);
+            }
+            if (duration > 0L) {
+                mediaInfo.setDuration(duration);
             }
             if (codecId != null) {
                 switch (codecId) {
                     case 0:
-                        track.setVideoCodec("H264");
+                        mediaInfo.setVideoCodec("H264");
                         break;
                     case 1:
-                        track.setVideoCodec("H265");
+                        mediaInfo.setVideoCodec("H265");
                         break;
                     case 2:
-                        track.setAudioCodec("AAC");
+                        mediaInfo.setAudioCodec("AAC");
                         break;
                     case 3:
-                        track.setAudioCodec("G711A");
+                        mediaInfo.setAudioCodec("G711A");
                         break;
                     case 4:
-                        track.setAudioCodec("G711U");
+                        mediaInfo.setAudioCodec("G711U");
                         break;
                 }
             }
         }
-        return track;
+        return mediaInfo;
     }
 
-    public static Track getInstance(OnStreamChangedHookParam param) {
+    public static MediaInfo getInstance(OnStreamChangedHookParam param) {
         List<OnStreamChangedHookParam.MediaTrack> tracks = param.getTracks();
-        Track track = new Track();
-        track.setReaderCount(param.getTotalReaderCount());
+        MediaInfo mediaInfo = new MediaInfo();
+        mediaInfo.setReaderCount(param.getTotalReaderCount());
         for (OnStreamChangedHookParam.MediaTrack mediaTrack : tracks) {
             switch (mediaTrack.getCodec_id()) {
                 case 0:
-                    track.setVideoCodec("H264");
+                    mediaInfo.setVideoCodec("H264");
                     break;
                 case 1:
-                    track.setVideoCodec("H265");
+                    mediaInfo.setVideoCodec("H265");
                     break;
                 case 2:
-                    track.setAudioCodec("AAC");
+                    mediaInfo.setAudioCodec("AAC");
                     break;
                 case 3:
-                    track.setAudioCodec("G711A");
+                    mediaInfo.setAudioCodec("G711A");
                     break;
                 case 4:
-                    track.setAudioCodec("G711U");
+                    mediaInfo.setAudioCodec("G711U");
                     break;
             }
             if (mediaTrack.getSample_rate() > 0) {
-                track.setAudioSampleRate(mediaTrack.getSample_rate());
+                mediaInfo.setAudioSampleRate(mediaTrack.getSample_rate());
             }
             if (mediaTrack.getChannels() > 0) {
-                track.setAudioChannels(mediaTrack.getChannels());
+                mediaInfo.setAudioChannels(mediaTrack.getChannels());
             }
             if (mediaTrack.getHeight() > 0) {
-                track.setHeight(mediaTrack.getHeight());
+                mediaInfo.setHeight(mediaTrack.getHeight());
             }
             if (mediaTrack.getWidth() > 0) {
-                track.setWidth(mediaTrack.getWidth());
+                mediaInfo.setWidth(mediaTrack.getWidth());
             }
         }
-        return track;
+        return mediaInfo;
     }
 
     public Integer getReaderCount() {
@@ -173,4 +179,12 @@
     public void setAudioSampleRate(Integer audioSampleRate) {
         this.audioSampleRate = audioSampleRate;
     }
+
+    public Long getDuration() {
+        return duration;
+    }
+
+    public void setDuration(Long duration) {
+        this.duration = duration;
+    }
 }

--
Gitblit v1.8.0