From 2601150f036e17604ee0431144a7ab921b7f8206 Mon Sep 17 00:00:00 2001
From: 648540858 <18010473990@163.com>
Date: 星期四, 02 九月 2021 15:47:42 +0800
Subject: [PATCH] 更新readme
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java | 22 ++++++++++++++++++----
1 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
index d2a30fa..9fd05b2 100644
--- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
+++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
@@ -4,8 +4,9 @@
import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;
import com.genersoft.iot.vmp.gb28181.transmit.callback.RequestMessage;
//import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
-import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.service.IMediaServerService;
+import com.genersoft.iot.vmp.service.bean.SSRCInfo;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
import com.genersoft.iot.vmp.service.IPlayService;
import io.swagger.annotations.Api;
@@ -58,6 +59,9 @@
@Autowired
private DeferredResultHolder resultHolder;
+ @Autowired
+ private IMediaServerService mediaServerService;
+
@ApiOperation("寮�濮嬭棰戝洖鏀�")
@ApiImplicitParams({
@ApiImplicitParam(name = "deviceId", value = "璁惧ID", dataTypeClass = String.class),
@@ -74,6 +78,15 @@
}
UUID uuid = UUID.randomUUID();
DeferredResult<ResponseEntity<String>> result = new DeferredResult<ResponseEntity<String>>(30000L);
+
+ Device device = storager.queryVideoDevice(deviceId);
+ if (device == null) {
+ result.setResult(new ResponseEntity<>(HttpStatus.BAD_REQUEST));
+ return result;
+ }
+ MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device);
+ SSRCInfo ssrcInfo = mediaServerService.openRTPServer(newMediaServerItem, null);
+
// 瓒呮椂澶勭悊
result.onTimeout(()->{
logger.warn(String.format("璁惧鍥炴斁瓒呮椂锛宒eviceId锛�%s 锛宑hannelId锛�%s", deviceId, channelId));
@@ -82,14 +95,14 @@
msg.setData("Timeout");
resultHolder.invokeResult(msg);
});
- Device device = storager.queryVideoDevice(deviceId);
+
StreamInfo streamInfo = redisCatchStorage.queryPlaybackByDevice(deviceId, channelId);
if (streamInfo != null) {
// 鍋滄涔嬪墠鐨勫洖鏀�
cmder.streamByeCmd(deviceId, channelId);
}
resultHolder.put(DeferredResultHolder.CALLBACK_CMD_PlAY + uuid, result);
- IMediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device);
+
if (newMediaServerItem == null) {
logger.warn(String.format("璁惧鍥炴斁瓒呮椂锛宒eviceId锛�%s 锛宑hannelId锛�%s", deviceId, channelId));
RequestMessage msg = new RequestMessage();
@@ -98,7 +111,8 @@
resultHolder.invokeResult(msg);
return result;
}
- cmder.playbackStreamCmd(newMediaServerItem, device, channelId, startTime, endTime, (IMediaServerItem mediaServerItem, JSONObject response) -> {
+
+ cmder.playbackStreamCmd(newMediaServerItem, ssrcInfo, device, channelId, startTime, endTime, (MediaServerItem mediaServerItem, JSONObject response) -> {
logger.info("鏀跺埌璁㈤槄娑堟伅锛� " + response.toJSONString());
playService.onPublishHandlerForPlayBack(mediaServerItem, response, deviceId, channelId, uuid.toString());
}, event -> {
--
Gitblit v1.8.0