wvp-GB28181-pro/src/main/java/com/genersoft/iot/vmp/media/MediaServerConfig.java

68 lines
2.6 KiB
Java
Raw Normal View History

2024-03-19 17:52:11 +08:00
package com.genersoft.iot.vmp.media;
import com.genersoft.iot.vmp.conf.MediaConfig;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.media.bean.MediaServer;
2024-03-31 00:28:45 +08:00
import com.genersoft.iot.vmp.media.event.mediaServer.MediaServerChangeEvent;
2024-03-19 17:52:11 +08:00
import com.genersoft.iot.vmp.media.service.IMediaServerService;
2024-07-03 17:24:35 +08:00
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
2024-03-19 18:29:58 +08:00
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
2022-11-16 09:39:27 +08:00
import java.util.List;
2024-03-20 11:07:08 +08:00
/**
*
*/
2024-07-03 17:24:35 +08:00
@Slf4j
@Component
2023-02-22 18:01:30 +08:00
@Order(value=12)
2024-03-19 17:52:11 +08:00
public class MediaServerConfig implements CommandLineRunner {
2024-03-19 18:29:58 +08:00
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
@Autowired
2021-07-16 16:34:51 +08:00
private IMediaServerService mediaServerService;
@Autowired
2021-07-16 16:34:51 +08:00
private MediaConfig mediaConfig;
@Autowired
private UserSetting userSetting;
@Override
public void run(String... strings) throws Exception {
2024-03-20 11:07:08 +08:00
// 清理所有在线节点的缓存信息
mediaServerService.clearMediaServerForOnline();
MediaServer defaultMediaServer = mediaServerService.getDefaultMediaServer();
MediaServer mediaSerItemInConfig = mediaConfig.getMediaSerItem();
mediaSerItemInConfig.setServerId(userSetting.getServerId());
2024-03-20 18:54:39 +08:00
if (defaultMediaServer != null && mediaSerItemInConfig.getId().equals(defaultMediaServer.getId())) {
mediaServerService.update(mediaSerItemInConfig);
}else {
2024-03-20 18:54:39 +08:00
if (defaultMediaServer != null) {
mediaServerService.delete(defaultMediaServer);
2024-03-20 18:54:39 +08:00
}
MediaServer mediaServerItem = mediaServerService.getOneFromDatabase(mediaSerItemInConfig.getId());
2024-03-20 18:54:39 +08:00
if (mediaServerItem == null) {
mediaServerService.add(mediaSerItemInConfig);
}else {
mediaServerService.update(mediaSerItemInConfig);
}
2021-12-02 17:37:29 +08:00
}
2024-03-19 18:29:58 +08:00
// 发送媒体节点变化事件
mediaServerService.syncCatchFromDatabase();
2024-03-20 00:26:04 +08:00
// 获取所有的zlm 并开启主动连接
List<MediaServer> all = mediaServerService.getAllFromDatabase();
2024-07-03 17:24:35 +08:00
log.info("[媒体节点] 加载节点列表, 共{}个节点", all.size());
2024-03-19 18:29:58 +08:00
MediaServerChangeEvent event = new MediaServerChangeEvent(this);
2024-03-20 11:07:08 +08:00
event.setMediaServerItemList(all);
2024-03-19 18:29:58 +08:00
applicationEventPublisher.publishEvent(event);
}
}