648540858
2021-11-24 08c45876df5121b5b750798bae3e658f0ec575c6
优化倍速播放参数
3个文件已修改
15 ■■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    /**
     * 语音广播
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;
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/playback/PlaybackController.java
@@ -221,10 +221,10 @@
    @ApiOperation("回放倍速播放")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "streamId", value = "回放流ID", 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);