diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java index 5520e30..d855bdf 100644 --- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java +++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/gb28181/Gb28181DownloadService.java @@ -531,7 +531,7 @@ public class Gb28181DownloadService { String toTag = item.getToTag(); String key = GenericSubscribe.Helper.getKey(Request.BYE, callId); subscribe.getByeSubscribe().addPublisher(key); - subscribe.getByeSubscribe().addSubscribe(key, byeSubscriber(key,cacheKey, streamId, time, unit)); + subscribe.getByeSubscribe().addSubscribe(key, byeSubscriber(key, device, cacheKey, streamId, time, unit)); return SipRequestBuilder.createAckRequest(Response.OK, ip, port, docking, device.getGbDeviceChannelId(), fromTag, toTag, callId); })); result.complete(new VideoInfo(streamId,videoUrl(streamId), callId, device)); @@ -564,7 +564,7 @@ public class Gb28181DownloadService { return subscriber; } - public Flow.Subscriber byeSubscriber(String key,String cacheKey,String streamId, long time, TimeUnit unit){ + public Flow.Subscriber byeSubscriber(String key,WvpProxyDevice device, String cacheKey,String streamId, long time, TimeUnit unit){ ScheduledFuture[] schedule = new ScheduledFuture[1]; Flow.Subscriber subscriber = new Flow.Subscriber<>() { @Override @@ -583,6 +583,7 @@ public class Gb28181DownloadService { String callId = request.getCallId().getCallId(); String infoKey = CacheUtil.getKey(MediaSdpHelper.Action.PLAY.getAction(), callId); RedisUtil.KeyOps.delete(infoKey); + realtimeManager.removePlaying(device.getDeviceCode()); } sender.getProvider(transport,ip)