From a209d173904843eee90e689c7431eb97c6e7bac6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 14 二月 2023 11:29:44 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0'

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java |   14 +++++++++++++-
 1 files changed, 13 insertions(+), 1 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 3405d40..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,11 +117,12 @@
 			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);
 				if (sendRtpItem.getPlayType().equals(InviteStreamType.PLAY)) {
-					Device device = deviceService.queryDevice(sendRtpItem.getDeviceId());
+					Device device = deviceService.getDevice(sendRtpItem.getDeviceId());
 					if (device == null) {
 						logger.info("[鏀跺埌bye] {} 閫氱煡璁惧鍋滄鎺ㄦ祦鏃舵湭鎵惧埌璁惧淇℃伅", streamId);
 					}
@@ -131,6 +142,7 @@
 					redisCatchStorage.sendStreamPushRequestedMsg(messageForPushChannel);
 				}
 			}
+
 			playService.stopAudioBroadcast(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
 		}
 

--
Gitblit v1.8.0