From 4f2191dc9f2766746664534e57c1f0bfbafd809d Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 17 十月 2022 10:30:44 +0800
Subject: [PATCH] 增加liveplayer播放器
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 79 ++++++++++-----------------------------
1 files changed, 20 insertions(+), 59 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index 8465d80..f8a74fe 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -2,6 +2,7 @@
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent;
@@ -26,6 +27,7 @@
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import java.util.*;
@@ -83,6 +85,9 @@
private GbStreamMapper gbStreamMapper;
@Autowired
+ private UserSetting userSetting;
+
+ @Autowired
private PlatformCatalogMapper catalogMapper;
@Autowired
@@ -110,11 +115,11 @@
if (CollectionUtils.isEmpty(deviceChannelList)) {
return false;
}
- List<DeviceChannel> allChannelInPlay = deviceChannelMapper.getAllChannelInPlay();
- Map<String,DeviceChannel> allChannelMapInPlay = new ConcurrentHashMap<>();
- if (allChannelInPlay.size() > 0) {
- for (DeviceChannel deviceChannel : allChannelInPlay) {
- allChannelMapInPlay.put(deviceChannel.getChannelId(), deviceChannel);
+ List<DeviceChannel> allChannels = deviceChannelMapper.queryAllChannels(deviceId);
+ Map<String,DeviceChannel> allChannelMap = new ConcurrentHashMap<>();
+ if (allChannels.size() > 0) {
+ for (DeviceChannel deviceChannel : allChannels) {
+ allChannelMap.put(deviceChannel.getChannelId(), deviceChannel);
}
}
TransactionStatus transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
@@ -122,17 +127,18 @@
List<DeviceChannel> channels = new ArrayList<>();
StringBuilder stringBuilder = new StringBuilder();
Map<String, Integer> subContMap = new HashMap<>();
- if (deviceChannelList.size() > 1) {
+ if (deviceChannelList.size() > 0) {
// 鏁版嵁鍘婚噸
Set<String> gbIdSet = new HashSet<>();
for (DeviceChannel deviceChannel : deviceChannelList) {
if (!gbIdSet.contains(deviceChannel.getChannelId())) {
gbIdSet.add(deviceChannel.getChannelId());
- if (allChannelMapInPlay.containsKey(deviceChannel.getChannelId())) {
- deviceChannel.setStreamId(allChannelMapInPlay.get(deviceChannel.getChannelId()).getStreamId());
+ if (allChannelMap.containsKey(deviceChannel.getChannelId())) {
+ deviceChannel.setStreamId(allChannelMap.get(deviceChannel.getChannelId()).getStreamId());
+ deviceChannel.setHasAudio(allChannelMap.get(deviceChannel.getChannelId()).isHasAudio());
}
channels.add(deviceChannel);
- if (!StringUtils.isEmpty(deviceChannel.getParentId())) {
+ if (!ObjectUtils.isEmpty(deviceChannel.getParentId())) {
if (subContMap.get(deviceChannel.getParentId()) == null) {
subContMap.put(deviceChannel.getParentId(), 1);
}else {
@@ -152,8 +158,6 @@
}
}
- }else {
- channels = deviceChannelList;
}
if (stringBuilder.length() > 0) {
logger.info("[鐩綍鏌ヨ]鏀跺埌鐨勬暟鎹瓨鍦ㄩ噸澶嶏細 {}" , stringBuilder);
@@ -457,13 +461,6 @@
}
@Override
- public PageInfo<ParentPlatform> queryParentPlatformList(int page, int count) {
- PageHelper.startPage(page, count);
- List<ParentPlatform> all = platformMapper.getParentPlatformList();
- return new PageInfo<>(all);
- }
-
- @Override
public ParentPlatform queryParentPlatByServerGBId(String platformGbId) {
return platformMapper.getParentPlatByServerGBId(platformGbId);
}
@@ -621,7 +618,7 @@
*/
@Override
public List<DeviceChannel> queryGbStreamListInPlatform(String platformId) {
- return gbStreamMapper.queryGbStreamListInPlatform(platformId);
+ return gbStreamMapper.queryGbStreamListInPlatform(platformId, userSetting.isUsePushingAsStatus());
}
/**
@@ -636,44 +633,8 @@
}
@Override
- public void updateMediaList(List<StreamPushItem> streamPushItems) {
- if (streamPushItems == null || streamPushItems.size() == 0) {
- return;
- }
- logger.info("updateMediaList: " + streamPushItems.size());
- streamPushMapper.addAll(streamPushItems);
- // TODO 寰呬紭鍖�
- for (int i = 0; i < streamPushItems.size(); i++) {
- int onlineResult = mediaOnline(streamPushItems.get(i).getApp(), streamPushItems.get(i).getStream());
- if (onlineResult > 0) {
- // 鍙戦�佷笂绾块�氱煡
- eventPublisher.catalogEventPublishForStream(null, streamPushItems.get(i), CatalogEvent.ON);
- }
- }
- }
-
-
-
- @Override
- public void updateMedia(StreamPushItem streamPushItem) {
- streamPushMapper.del(streamPushItem.getApp(), streamPushItem.getStream());
- streamPushMapper.add(streamPushItem);
- mediaOffline(streamPushItem.getApp(), streamPushItem.getStream());
- }
-
- @Override
public int removeMedia(String app, String stream) {
return streamPushMapper.del(app, stream);
- }
-
- @Override
- public StreamPushItem getMedia(String app, String stream) {
- return streamPushMapper.selectOne(app, stream);
- }
-
- @Override
- public void clearMediaList() {
- streamPushMapper.clear();
}
@Override
@@ -683,7 +644,7 @@
if ("proxy".equals(gbStream.getStreamType())) {
result = streamProxyMapper.updateStatus(app, stream, false);
}else {
- result = streamPushMapper.updateStatus(app, stream, false);
+ result = streamPushMapper.updatePushStatus(app, stream, false);
}
return result;
}
@@ -695,7 +656,7 @@
if ("proxy".equals(gbStream.getStreamType())) {
result = streamProxyMapper.updateStatus(app, stream, true);
}else {
- result = streamPushMapper.updateStatus(app, stream, true);
+ result = streamPushMapper.updatePushStatus(app, stream, true);
}
return result;
}
@@ -738,13 +699,13 @@
return 0;
}
if (platform.getTreeType().equals(TreeType.BUSINESS_GROUP)) {
- if (platformCatalog.getPlatformId().equals(platformCatalog.getParentId())) {
+ if (platform.getDeviceGBId().equals(platformCatalog.getParentId())) {
// 绗竴灞傝妭鐐�
platformCatalog.setBusinessGroupId(platformCatalog.getId());
platformCatalog.setParentId(platform.getDeviceGBId());
}else {
// 鑾峰彇椤跺眰鐨�
- PlatformCatalog topCatalog = getTopCatalog(platformCatalog.getParentId(), platformCatalog.getPlatformId());
+ PlatformCatalog topCatalog = getTopCatalog(platformCatalog.getParentId(), platform.getDeviceGBId());
platformCatalog.setBusinessGroupId(topCatalog.getId());
}
}
--
Gitblit v1.8.0