From 80d96042e7b6f2942585bde482f02a3392477033 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 24 十一月 2022 20:01:03 +0800
Subject: [PATCH] 优化语音对讲

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java
index 82f1b4f..3ad1fde 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java
@@ -98,6 +98,16 @@
 		if (sendRtpItem != null){
 			logger.info("[鏀跺埌bye] {}/{}", sendRtpItem.getPlatformId(), sendRtpItem.getChannelId());
 			String streamId = sendRtpItem.getStreamId();
+			MediaServerItem mediaServerItem = mediaServerService.getOne(sendRtpItem.getMediaServerId());
+			if (mediaServerItem == null) {
+				return;
+			}
+
+			Boolean ready = zlmrtpServerFactory.isStreamReady(mediaServerItem, sendRtpItem.getApp(), streamId);
+			if (!ready) {
+				logger.info("[鏀跺埌bye] 鍙戠幇娴亄}/{}宸茬粡缁撴潫锛屼笉闇�澶勭悊", sendRtpItem.getApp(), sendRtpItem.getStreamId());
+				return;
+			}
 			Map<String, Object> param = new HashMap<>();
 			param.put("vhost","__defaultVhost__");
 			param.put("app",sendRtpItem.getApp());
@@ -107,6 +117,7 @@
 			MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId());
 			redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(), sendRtpItem.getChannelId(), callIdHeader.getCallId(), null);
 			zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param);
+
 			int totalReaderCount = zlmrtpServerFactory.totalReaderCount(mediaInfo, sendRtpItem.getApp(), streamId);
 			if (totalReaderCount <= 0) {
 				logger.info("[鏀跺埌bye] {} 鏃犲叾瀹冭鐪嬭�咃紝閫氱煡璁惧鍋滄鎺ㄦ祦", streamId);
@@ -131,6 +142,7 @@
 					redisCatchStorage.sendStreamPushRequestedMsg(messageForPushChannel);
 				}
 			}
+
 			playService.stopAudioBroadcast(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
 		}
 

--
Gitblit v1.8.0