From f357bece629710f8d9916b070c0f4ce185f7ac75 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 16 四月 2024 22:22:00 +0800 Subject: [PATCH] 优化回调设置方式 --- src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 36 ++++++++++++++++++++++++++++-------- 1 files changed, 28 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index 5d82b2d..aeb0dc8 100755 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -25,7 +25,6 @@ import com.genersoft.iot.vmp.utils.JsonUtil; import com.genersoft.iot.vmp.utils.redis.RedisUtil; import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; -import com.genersoft.iot.vmp.vmanager.bean.RecordFile; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; @@ -36,19 +35,15 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; -import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Service; import org.springframework.transaction.TransactionDefinition; import org.springframework.transaction.TransactionStatus; -import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; import java.io.File; import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ExecutionException; /** * 濯掍綋鏈嶅姟鍣ㄨ妭鐐圭鐞� @@ -119,6 +114,8 @@ + + /** * 鍒濆鍖� */ @@ -145,7 +142,7 @@ @Override public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String presetSsrc, boolean ssrcCheck, - boolean isPlayback, Integer port, Boolean reUsePort, Integer tcpMode) { + boolean isPlayback, Integer port, Boolean onlyAuto, Boolean reUsePort, Integer tcpMode) { if (mediaServerItem == null || mediaServerItem.getId() == null) { logger.info("[openRTPServer] 澶辫触, mediaServerItem == null || mediaServerItem.getId() == null"); return null; @@ -171,12 +168,18 @@ } int rtpServerPort; if (mediaServerItem.isRtpEnable()) { - rtpServerPort = zlmServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck ? Long.parseLong(ssrc) : 0, port, reUsePort, tcpMode); + rtpServerPort = zlmServerFactory.createRTPServer(mediaServerItem, streamId, ssrcCheck ? Long.parseLong(ssrc) : 0, port, onlyAuto, reUsePort, tcpMode); } else { rtpServerPort = mediaServerItem.getRtpProxyPort(); } return new SSRCInfo(rtpServerPort, ssrc, streamId); } + + @Override + public SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, String ssrc, boolean ssrcCheck, boolean isPlayback, Integer port, Boolean onlyAuto) { + return openRTPServer(mediaServerItem, streamId, ssrc, ssrcCheck, isPlayback, port, onlyAuto, null, 0); + } + @Override public void closeRTPServer(MediaServerItem mediaServerItem, String streamId) { @@ -198,7 +201,7 @@ @Override public void closeRTPServer(String mediaServerId, String streamId) { MediaServerItem mediaServerItem = this.getOne(mediaServerId); - if (mediaServerItem.isRtpEnable()) { + if (mediaServerItem != null && mediaServerItem.isRtpEnable()) { closeRTPServer(mediaServerItem, streamId); } zlmresTfulUtils.closeStreams(mediaServerItem, "rtp", streamId); @@ -305,6 +308,7 @@ String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId; return JsonUtil.redisJsonToObject(redisTemplate, key, MediaServerItem.class); } + @Override public MediaServerItem getDefaultMediaServer() { @@ -742,6 +746,22 @@ @Override public List<MediaServerItem> getAllWithAssistPort() { + return mediaServerMapper.queryAllWithAssistPort(); } + + @Override + public MediaServerItem getMediaServerByAppAndStream(String app, String stream) { + List<MediaServerItem> mediaServerItemList = getAllOnline(); + if (mediaServerItemList.isEmpty()) { + return null; + } + for (MediaServerItem mediaServerItem : mediaServerItemList) { + Boolean streamReady = zlmServerFactory.isStreamReady(mediaServerItem, app, stream); + if (streamReady) { + return mediaServerItem; + } + } + return null; + } } -- Gitblit v1.8.0