优化推流结束时流类型的获取

This commit is contained in:
lin
2022-01-08 18:00:31 +08:00
parent abb60593cb
commit 098dd8a045
5 changed files with 54 additions and 42 deletions

View File

@@ -3,7 +3,9 @@ package com.genersoft.iot.vmp.storager;
import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
@@ -143,7 +145,7 @@ public interface IRedisCatchStorage {
* @param app
* @param streamId
*/
void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, StreamInfo streamInfo);
void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem item);
/**
* 移除流信息从redis
@@ -175,7 +177,7 @@ public interface IRedisCatchStorage {
*/
ThirdPartyGB queryMemberNoGBId(String queryKey);
List<StreamInfo> getStreams(String mediaServerId, String pull);
List<MediaItem> getStreams(String mediaServerId, String pull);
/**
* 将device信息写入redis
@@ -206,4 +208,6 @@ public interface IRedisCatchStorage {
SubscribeInfo getSubscribe(String key);
void delSubscribe(String key);
MediaItem getStreamInfo(String app, String streamId, String mediaServerId);
}

View File

@@ -5,7 +5,9 @@ import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.UserSetup;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
@@ -386,9 +388,9 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
@Override
public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, StreamInfo streamInfo) {
public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem mediaItem) {
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerItem.getId();
redis.set(key, streamInfo);
redis.set(key, mediaItem);
}
@Override
@@ -421,13 +423,13 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
@Override
public List<StreamInfo> getStreams(String mediaServerId, String type) {
List<StreamInfo> result = new ArrayList<>();
public List<MediaItem> getStreams(String mediaServerId, String type) {
List<MediaItem> result = new ArrayList<>();
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_" + type + "_*_*_" + mediaServerId;
List<Object> streams = redis.scan(key);
for (Object stream : streams) {
StreamInfo streamInfo = (StreamInfo)redis.get((String) stream);
result.add(streamInfo);
MediaItem mediaItem = (MediaItem)redis.get((String) stream);
result.add(mediaItem);
}
return result;
}
@@ -492,4 +494,18 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
return result;
}
@Override
public MediaItem getStreamInfo(String app, String streamId, String mediaServerId) {
String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetup.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId;
MediaItem result = null;
List<Object> keys = redis.scan(scanKey);
if (keys.size() > 0) {
String key = (String) keys.get(0);
result = (MediaItem)redis.get(key);
}
return result;
}
}