拆分redis中device与channel的存储方式

支持分页
接口直接返回播放地址
This commit is contained in:
648540858
2020-09-25 17:22:22 +08:00
parent 956fd47ed6
commit da14c7f24c
21 changed files with 1445 additions and 78 deletions

View File

@@ -2,6 +2,8 @@ package com.genersoft.iot.vmp.vmanager.device;
import java.util.List;
import com.genersoft.iot.vmp.common.PageResult;
import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,14 +55,30 @@ public class DeviceController {
}
@GetMapping("/devices")
public ResponseEntity<List<Device>> devices(){
public PageResult<Device> devices(int page, int count){
if (logger.isDebugEnabled()) {
logger.debug("查询所有视频设备API调用");
}
List<Device> deviceList = storager.queryVideoDeviceList(null);
return new ResponseEntity<>(deviceList,HttpStatus.OK);
return storager.queryVideoDeviceList(null, page, count);
}
/**
* 分页查询通道数
* @param deviceId 设备id
* @param page 当前页
* @param count 每页条数
* @return 通道列表
*/
@GetMapping("devices/{deviceId}/channels")
public ResponseEntity<PageResult> channels(@PathVariable String deviceId, int page, int count){
if (logger.isDebugEnabled()) {
logger.debug("查询所有视频设备API调用");
}
PageResult pageResult = storager.queryChannelsByDeviceId(deviceId, page, count);
return new ResponseEntity<>(pageResult,HttpStatus.OK);
}
@PostMapping("/devices/{deviceId}/sync")

View File

@@ -1,5 +1,6 @@
package com.genersoft.iot.vmp.vmanager.play;
import com.genersoft.iot.vmp.common.StreamInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -34,16 +35,16 @@ public class PlayController {
public ResponseEntity<String> play(@PathVariable String deviceId,@PathVariable String channelId){
Device device = storager.queryVideoDevice(deviceId);
String ssrc = cmder.playStreamCmd(device, channelId);
StreamInfo streamInfo = cmder.playStreamCmd(device, channelId);
if (logger.isDebugEnabled()) {
logger.debug(String.format("设备预览 API调用deviceId%s channelId%s",deviceId, channelId));
logger.debug("设备预览 API调用ssrc"+ssrc+",ZLMedia streamId:"+Integer.toHexString(Integer.parseInt(ssrc)));
logger.debug("设备预览 API调用ssrc"+streamInfo.getSsrc()+",ZLMedia streamId:"+Integer.toHexString(Integer.parseInt(streamInfo.getSsrc())));
}
if(ssrc!=null) {
if(streamInfo!=null) {
JSONObject json = new JSONObject();
json.put("ssrc", ssrc);
json.put("ssrc", streamInfo.getSsrc());
return new ResponseEntity<String>(json.toString(),HttpStatus.OK);
} else {
logger.warn("设备预览API调用失败");