From f8abd2603002eb6ff296d26f99042681d9b2bc92 Mon Sep 17 00:00:00 2001 From: lawrencehj <1934378145@qq.com> Date: 星期五, 23 七月 2021 17:06:49 +0800 Subject: [PATCH] 修正推流列表播放错误 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java | 27 +++++++++++++++++++++++---- 1 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java index ec136e9..50e8c32 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java @@ -15,7 +15,12 @@ import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor; import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; +import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import java.text.ParseException; import java.util.HashMap; @@ -28,11 +33,15 @@ */ public class ByeRequestProcessor extends SIPRequestAbstractProcessor { + private Logger logger = LoggerFactory.getLogger(ByeRequestProcessor.class); + private ISIPCommander cmder; private IRedisCatchStorage redisCatchStorage; private ZLMRTPServerFactory zlmrtpServerFactory; + + private IMediaServerService mediaServerService; /** * 澶勭悊BYE璇锋眰 @@ -48,16 +57,19 @@ String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser(); String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser(); SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(platformGbId, channelId); + if (sendRtpItem == null) return; String streamId = sendRtpItem.getStreamId(); Map<String, Object> param = new HashMap<>(); param.put("vhost","__defaultVhost__"); param.put("app",sendRtpItem.getApp()); param.put("stream",streamId); - System.out.println("鍋滄鍚戜笂绾ф帹娴侊細" + streamId); - zlmrtpServerFactory.stopSendRtpStream(param); + param.put("ssrc",sendRtpItem.getSsrc()); + logger.info("鍋滄鍚戜笂绾ф帹娴侊細" + streamId); + IMediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); + zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param); redisCatchStorage.deleteSendRTPServer(platformGbId, channelId); - if (zlmrtpServerFactory.totalReaderCount(sendRtpItem.getApp(), streamId) == 0) { - System.out.println(streamId + "鏃犲叾瀹冭鐪嬭�咃紝閫氱煡璁惧鍋滄鎺ㄦ祦"); + if (zlmrtpServerFactory.totalReaderCount(mediaInfo, sendRtpItem.getApp(), streamId) == 0) { + logger.info(streamId + "鏃犲叾瀹冭鐪嬭�咃紝閫氱煡璁惧鍋滄鎺ㄦ祦"); cmder.streamByeCmd(sendRtpItem.getDeviceId(), channelId); } } @@ -106,4 +118,11 @@ this.cmder = cmder; } + public IMediaServerService getMediaServerService() { + return mediaServerService; + } + + public void setMediaServerService(IMediaServerService mediaServerService) { + this.mediaServerService = mediaServerService; + } } -- Gitblit v1.8.0