From 08c45876df5121b5b750798bae3e658f0ec575c6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 24 十一月 2021 15:10:10 +0800
Subject: [PATCH] 优化倍速播放参数
---
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java | 9 +++++++--
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 4 ++--
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java | 2 +-
3 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
index 6238b70..2da0010 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
@@ -140,7 +140,7 @@
/**
* 鍥炴斁鍊嶉�熸挱鏀�
*/
- void playSpeedCmd(Device device, StreamInfo streamInfo, String speed);
+ void playSpeedCmd(Device device, StreamInfo streamInfo, Double speed);
/**
* 璇煶骞挎挱
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index d90705c..c229dec 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -1630,12 +1630,12 @@
* 鍥炴斁鍊嶉�熸挱鏀�
*/
@Override
- public void playSpeedCmd(Device device, StreamInfo streamInfo, String speed) {
+ public void playSpeedCmd(Device device, StreamInfo streamInfo, Double speed) {
try {
StringBuffer content = new StringBuffer(200);
content.append("PLAY RTSP/1.0\r\n");
content.append("CSeq: " + InfoCseqCache.CSEQCACHE.get(streamInfo.getStreamId()) + "\r\n");
- content.append("Scale: " + speed + ".000000\r\n");
+ content.append("Scale: " + String.format("%.1f",speed) + "\r\n");
Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString());
logger.info(request.toString());
ClientTransaction clientTransaction = null;
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 90ecfd4..a029073 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
@@ -221,10 +221,10 @@
@ApiOperation("鍥炴斁鍊嶉�熸挱鏀�")
@ApiImplicitParams({
@ApiImplicitParam(name = "streamId", value = "鍥炴斁娴両D", dataTypeClass = String.class),
- @ApiImplicitParam(name = "speed", value = "鍊嶉�� 1銆�2銆�4", dataTypeClass = String.class),
+ @ApiImplicitParam(name = "speed", value = "鍊嶉��0.25 0.5 1銆�2銆�4", dataTypeClass = Double.class),
})
@GetMapping("/speed/{streamId}/{speed}")
- public ResponseEntity<String> playSpeed(@PathVariable String streamId, @PathVariable String speed) {
+ public ResponseEntity<String> playSpeed(@PathVariable String streamId, @PathVariable Double speed) {
logger.info("playSpeed: "+streamId+", "+speed);
JSONObject json = new JSONObject();
StreamInfo streamInfo = redisCatchStorage.queryPlaybackByStreamId(streamId);
@@ -233,6 +233,11 @@
logger.warn("streamId涓嶅瓨鍦�!");
return new ResponseEntity<String>(json.toString(), HttpStatus.BAD_REQUEST);
}
+ if(speed != 0.25 && speed != 0.5 && speed != 1 && speed != 2.0 && speed != 4.0) {
+ json.put("msg", "涓嶆敮鎸佺殑speed锛�0.25 0.5 1銆�2銆�4锛�");
+ logger.warn("涓嶆敮鎸佺殑speed锛� " + speed);
+ return new ResponseEntity<String>(json.toString(), HttpStatus.BAD_REQUEST);
+ }
setCseq(streamId);
Device device = storager.queryVideoDevice(streamInfo.getDeviceID());
cmder.playSpeedCmd(device, streamInfo, speed);
--
Gitblit v1.8.0