From bec35ebf940f5cb1f0e2b9052d6dfb4da3ab7391 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 28 五月 2024 16:06:08 +0800
Subject: [PATCH] 调整录像进度获取流程
---
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java | 10 ++++++++++
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 10 +++-------
src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java | 10 ++++++++++
src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java | 2 ++
src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java | 2 ++
5 files changed, 27 insertions(+), 7 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java
index a3916b3..2566e0b 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaNodeServerService.java
@@ -60,4 +60,6 @@
void startSendRtpPassive(MediaServer mediaServer, SendRtpItem sendRtpItem, Integer timeout);
void startSendRtpStream(MediaServer mediaServer, SendRtpItem sendRtpItem);
+
+ Long updateDownloadProcess(MediaServer mediaServer, String app, String stream);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java
index cde96df..ceac0ec 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/service/IMediaServerService.java
@@ -151,4 +151,6 @@
String app, String stream, String channelId, boolean tcp, boolean rtcp);
MediaServer getMediaServerByAppAndStream(String app, String stream);
+
+ Long updateDownloadProcess(MediaServer mediaServerItem, String app, String stream);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
index 2dd66e7..2bfc5df 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/service/impl/MediaServerServiceImpl.java
@@ -921,4 +921,14 @@
}
return null;
}
+
+ @Override
+ public Long updateDownloadProcess(MediaServer mediaServer, String app, String stream) {
+ IMediaNodeServerService mediaNodeServerService = nodeServerServiceMap.get(mediaServer.getType());
+ if (mediaNodeServerService == null) {
+ logger.info("[updateDownloadProcess] 澶辫触, mediaServer鐨勭被鍨嬶細 {}锛屾湭鎵惧埌瀵瑰簲鐨勫疄鐜扮被", mediaServer.getType());
+ throw new ControllerException(ErrorCode.ERROR100.getCode(), "鏈壘鍒癿ediaServer瀵瑰簲鐨勫疄鐜扮被");
+ }
+ return mediaNodeServerService.updateDownloadProcess(mediaServer, app, stream);
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
index 4cfdaf3..d9a6c6b 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
@@ -384,4 +384,14 @@
throw new ControllerException(jsonObject.getInteger("code"), jsonObject.getString("msg"));
}
}
+
+ @Override
+ public Long updateDownloadProcess(MediaServer mediaServer, String app, String stream) {
+ MediaInfo mediaInfo = getMediaInfo(mediaServer, app, stream);
+ if (mediaInfo == null) {
+ logger.warn("[鑾峰彇涓嬭浇杩涘害] 鏌ヨ杩涘害澶辫触, 鑺傜偣Id锛� {}锛� {}/{}", mediaServer.getId(), app, stream);
+ return null;
+ }
+ return mediaInfo.getDuration();
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index 7cf0398..5375b7a 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -1081,12 +1081,8 @@
return null;
}
String app = "rtp";
- MediaInfo mediaInfo = mediaServerService.getMediaInfo(mediaServerItem, app, stream);
- if (mediaInfo == null) {
- logger.warn("[鑾峰彇涓嬭浇杩涘害] 鏌ヨ杩涘害澶辫触, 鑺傜偣Id锛� {}锛� {}/{}", mediaServerId, app, stream);
- return null;
- }
- if (mediaInfo.getDuration() == 0) {
+ Long duration = mediaServerService.updateDownloadProcess(mediaServerItem, app, stream);
+ if (duration == null || duration == 0) {
inviteInfo.getStreamInfo().setProgress(0);
} else {
String startTime = inviteInfo.getStreamInfo().getStartTime();
@@ -1095,7 +1091,7 @@
long start = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime);
long end = DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime);
- BigDecimal currentCount = new BigDecimal(mediaInfo.getDuration());
+ BigDecimal currentCount = new BigDecimal(duration);
BigDecimal totalCount = new BigDecimal((end - start) * 1000);
BigDecimal divide = currentCount.divide(totalCount, 2, RoundingMode.HALF_UP);
double process = divide.doubleValue();
--
Gitblit v1.8.0