From bc1b8098a2d042bd94038128f3e83c604b0418c9 Mon Sep 17 00:00:00 2001 From: 648540858 <456panlinlin> Date: 星期一, 21 三月 2022 16:58:42 +0800 Subject: [PATCH] 修身颠簸与录像回放redis前缀重复的问题 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 32 +++++++++++++++++++++++++------- 1 files changed, 25 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java index 5b7ba1c..fa4aa35 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java @@ -105,7 +105,7 @@ updateMedia(mediaServerItem, app, streamId); } - public void addPush(MediaItem mediaItem) { + public StreamPushItem addPush(MediaItem mediaItem) { // 鏌ユ壘姝ょ洿鎾祦鏄惁瀛樺湪redis棰勮gbId StreamPushItem transform = streamPushService.transform(mediaItem); // 浠巗treamId鍙栧嚭鏌ヨ鍏抽敭鍊� @@ -122,26 +122,44 @@ transform.setName(thirdPartyGB.getName()); } } - storager.updateMedia(transform); if (!StringUtils.isEmpty(transform.getGbId())) { // 濡傛灉杩欎釜鍥芥爣ID宸茬粡缁欎簡鍏朵粬鎺ㄦ祦涓旀祦宸茬绾匡紝鍒欑Щ闄ゅ叾浠栨帹娴� List<GbStream> gbStreams = gbStreamMapper.selectByGBId(transform.getGbId()); if (gbStreams.size() > 0) { for (GbStream gbStream : gbStreams) { // 鍑虹幇浣跨敤鐩稿悓鍥芥爣Id鐨勮棰戞祦鏃讹紝浣跨敤鏂版祦鏇挎崲鏃ф祦锛� - gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); - platformGbStreamMapper.delByAppAndStream(gbStream.getApp(), gbStream.getStream()); - if (!gbStream.isStatus()) { - streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); + if (queryKey != null && gbStream.getApp().equals(mediaItem.getApp())) { + Matcher matcherForStream = pattern.matcher(gbStream.getStream()); + String queryKeyForStream = null; + if (matcherForStream.find()) { //姝ゅfind锛堬級姣忔琚皟鐢ㄥ悗锛屼細鍋忕Щ鍒颁笅涓�涓尮閰� + queryKeyForStream = matcherForStream.group(); + } + if (queryKeyForStream == null || !queryKeyForStream.equals(queryKey)) { + // 姝ゆ椂涓嶆槸鍚屼竴涓祦 + gbStreamMapper.del(gbStream.getApp(), gbStream.getStream()); + if (!gbStream.isStatus()) { + streamPushMapper.del(gbStream.getApp(), gbStream.getStream()); + } + } } } } - if (gbStreamMapper.selectOne(transform.getApp(), transform.getStream()) != null) { + // StreamProxyItem streamProxyItem = gbStreamMapper.selectOne(transform.getApp(), transform.getStream()); + List<GbStream> gbStreamList = gbStreamMapper.selectByGBId(transform.getGbId()); + if (gbStreamList != null && gbStreamList.size() == 1) { + transform.setGbStreamId(gbStreamList.get(0).getGbStreamId()); + transform.setPlatformId(gbStreamList.get(0).getPlatformId()); + transform.setCatalogId(gbStreamList.get(0).getCatalogId()); + transform.setGbId(gbStreamList.get(0).getGbId()); gbStreamMapper.update(transform); + streamPushMapper.del(gbStreamList.get(0).getApp(), gbStreamList.get(0).getStream()); }else { + transform.setCreateStamp(System.currentTimeMillis()); gbStreamMapper.add(transform); } } + storager.updateMedia(transform); + return transform; } -- Gitblit v1.8.0