From 5d901b5e3f033e8b04e53420d68626cbd87431c8 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 06 五月 2022 10:12:34 +0800 Subject: [PATCH] 使用阿里代码规范。规范代码写法 --- src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java | 55 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java index 8ebd8ed..ddbf20b 100644 --- a/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java +++ b/src/main/java/com/genersoft/iot/vmp/web/gb28181/ApiStreamController.java @@ -1,18 +1,19 @@ package com.genersoft.iot.vmp.web.gb28181; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.genersoft.iot.vmp.common.StreamInfo; +import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.gb28181.bean.Device; import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.service.IPlayService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; -import com.genersoft.iot.vmp.vmanager.gb28181.play.PlayController; +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; +import com.genersoft.iot.vmp.vmanager.gb28181.play.bean.PlayResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import org.springframework.web.context.request.async.DeferredResult; @@ -31,18 +32,16 @@ private SIPCommander cmder; @Autowired - private IVideoManagerStorager storager; + private IVideoManagerStorage storager; + + @Autowired + private UserSetting userSetting; @Autowired private IRedisCatchStorage redisCatchStorage; - - // @Autowired - // private ZLMRESTfulUtils zlmresTfulUtils; - - @Autowired - private PlayController playController; + private IPlayService playService; /** * 瀹炴椂鐩存挱 - 寮�濮嬬洿鎾� @@ -69,7 +68,7 @@ @RequestParam(required = false)String timeout ){ - DeferredResult<JSONObject> resultDeferredResult = new DeferredResult<JSONObject>(); + DeferredResult<JSONObject> resultDeferredResult = new DeferredResult<>(userSetting.getPlayTimeout().longValue() + 10); Device device = storager.queryVideoDevice(serial); if (device == null ) { JSONObject result = new JSONObject(); @@ -99,13 +98,11 @@ result.put("error","channel[ " + code + " ]offline"); resultDeferredResult.setResult(result); } - DeferredResult<ResponseEntity<String>> play = playController.play(serial, code); - - play.setResultHandler((Object o)->{ - ResponseEntity<String> responseEntity = (ResponseEntity)o; - StreamInfo streamInfo = JSON.parseObject(responseEntity.getBody(), StreamInfo.class); + MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); + PlayResult play = playService.play(newMediaServerItem, serial, code, (mediaServerItem, response)->{ + StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(serial, code); JSONObject result = new JSONObject(); - result.put("StreamID", streamInfo.getStreamId()); + result.put("StreamID", streamInfo.getStream()); result.put("DeviceID", device.getDeviceId()); result.put("ChannelID", code); result.put("ChannelName", deviceChannel.getName()); @@ -134,9 +131,25 @@ result.put("NumOutputs", ""); result.put("CascadeSize", ""); result.put("RelaySize", ""); - result.put("ChannelPTZType", 0); + result.put("ChannelPTZType", "0"); resultDeferredResult.setResult(result); - }); +// Class<?> aClass = responseEntity.getClass().getSuperclass(); +// Field body = null; +// try { +// // 浣跨敤鍙嶅皠鍔ㄦ�佷慨鏀硅繑鍥炵殑body +// body = aClass.getDeclaredField("body"); +// body.setAccessible(true); +// body.set(responseEntity, result); +// } catch (NoSuchFieldException e) { +// e.printStackTrace(); +// } catch (IllegalAccessException e) { +// e.printStackTrace(); +// } + }, (eventResult) -> { + JSONObject result = new JSONObject(); + result.put("error", "channel[ " + code + " ] " + eventResult.msg); + resultDeferredResult.setResult(result); + }, null); return resultDeferredResult; } @@ -163,7 +176,7 @@ result.put("error","鏈壘鍒版祦淇℃伅"); return result; } - cmder.streamByeCmd(serial, code); + cmder.streamByeCmd(serial, code, streamInfo.getStream(), null); redisCatchStorage.stopPlay(streamInfo); storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId()); return null; -- Gitblit v1.8.0