From 6282c81bc5d3da22eaa304ad564d15014bcc4a79 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 23 十一月 2021 11:35:23 +0800 Subject: [PATCH] 移除onvif实现 --- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java | 55 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 35 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java index d06c6c3..f20f74d 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java @@ -4,22 +4,16 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.conf.MediaConfig; -import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem; import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; -import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; import com.genersoft.iot.vmp.service.IMediaServerService; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.service.IStreamProxyService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.CommandLineRunner; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import javax.print.attribute.standard.Media; import java.util.*; @Component @@ -47,16 +41,26 @@ @Override public void run(String... strings) throws Exception { - IMediaServerItem presetMediaServer = mediaServerService.getOneByHostAndPort( - mediaConfig.getIp(), mediaConfig.getHttpPort()); - if (presetMediaServer != null) { - mediaConfig.setId(presetMediaServer.getId()); - mediaServerService.update(mediaConfig); - } + // 娓呮redis缂撳瓨鐨勫湪绾縵lm淇℃伅 + mediaServerService.clearMediaServerForOnline(); + + // 灏嗛厤缃枃浠剁殑meida閰嶇疆鍐欏叆鏁版嵁搴� +// MediaServerItem presetMediaServer = mediaServerService.getOneByHostAndPort( +// mediaConfig.getIp(), mediaConfig.getHttpPort()); +// if (presetMediaServer != null) { +// MediaServerItem mediaSerItem = mediaConfig.getMediaSerItem(); +// mediaSerItem.setId(presetMediaServer.getId()); +// mediaServerService.update(mediaSerItem); +// }else { +// if (mediaConfig.getId() != null) { +// MediaServerItem mediaSerItem = mediaConfig.getMediaSerItem(); +// mediaServerService.add(mediaSerItem); +// } +// } // 璁㈤槄 zlm鍚姩浜嬩欢, 鏂扮殑zlm涔熶細浠庤繖閲岃繘鍏ョ郴缁� hookSubscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_server_started,null, - (IMediaServerItem mediaServerItem, JSONObject response)->{ + (MediaServerItem mediaServerItem, JSONObject response)->{ ZLMServerConfig zlmServerConfig = JSONObject.toJavaObject(response, ZLMServerConfig.class); if (zlmServerConfig !=null ) { startGetMedia.remove(zlmServerConfig.getGeneralMediaServerId()); @@ -69,23 +73,27 @@ logger.info("绛夊緟榛樿zlm鎺ュ叆..."); // 鑾峰彇鎵�鏈夌殑zlm锛� 骞跺紑鍚富鍔ㄨ繛鎺� - List<IMediaServerItem> all = mediaServerService.getAll(); - if (presetMediaServer == null) { + List<MediaServerItem> all = mediaServerService.getAllFromDatabase(); + if (all.size() == 0) { all.add(mediaConfig.getMediaSerItem()); } - for (IMediaServerItem mediaServerItem : all) { + for (MediaServerItem mediaServerItem : all) { if (startGetMedia == null) startGetMedia = new HashMap<>(); startGetMedia.put(mediaServerItem.getId(), true); new Thread(() -> { + ZLMServerConfig zlmServerConfig = getMediaServerConfig(mediaServerItem); if (zlmServerConfig != null) { + zlmServerConfig.setIp(mediaServerItem.getIp()); + zlmServerConfig.setHttpPort(mediaServerItem.getHttpPort()); startGetMedia.remove(mediaServerItem.getId()); mediaServerService.handLeZLMServerConfig(zlmServerConfig); } + }).start(); } Timer timer = new Timer(); - // 1鍒嗛挓鍚庢湭杩炴帴鍒板垯涓嶅啀鍘讳富鍔ㄨ繛鎺� + // 2鍒嗛挓鍚庢湭杩炴帴鍒板垯涓嶅啀鍘讳富鍔ㄨ繛鎺�, TODO 骞跺閲嶅惎鍓嶄娇鐢ㄦ鍦▃lm鐨勯�氶亾鍙戦�乥ye timer.schedule(new TimerTask() { @Override public void run() { @@ -93,15 +101,22 @@ Set<String> allZlmId = startGetMedia.keySet(); for (String id : allZlmId) { logger.error("[ {} ]]涓诲姩杩炴帴澶辫触锛屼笉鍐嶄富鍔ㄨ繛鎺�", id); - startGetMedia.put(id, false); } + startGetMedia = null; } + // TODO 娓呯悊鏁版嵁搴撲腑涓巖edis涓嶅尮閰嶇殑zlm } }, 60 * 1000 * 2); } - public ZLMServerConfig getMediaServerConfig(IMediaServerItem mediaServerItem) { - if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) return null; + public ZLMServerConfig getMediaServerConfig(MediaServerItem mediaServerItem) { + if (startGetMedia == null) { return null;} + if (!mediaServerItem.isDefaultServer() && mediaServerService.getOne(mediaServerItem.getId()) == null) { + return null; + } + if ( startGetMedia.get(mediaServerItem.getId()) == null || !startGetMedia.get(mediaServerItem.getId())) { + return null; + } JSONObject responseJSON = zlmresTfulUtils.getMediaServerConfig(mediaServerItem); ZLMServerConfig ZLMServerConfig = null; if (responseJSON != null) { -- Gitblit v1.8.0