From 37e97a782c43f658a5bfee7ac1df31bb86d9b955 Mon Sep 17 00:00:00 2001 From: Lawrence <1934378145@qq.com> Date: 星期四, 29 十月 2020 10:21:40 +0800 Subject: [PATCH] 改正并优化查询RTP流信息的流程 --- src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java | 29 ++++++++++++++++++++--------- 1 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java index e53cbbf..56d1c7b 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/playback/PlaybackController.java @@ -52,7 +52,7 @@ } Device device = storager.queryVideoDevice(deviceId); - StreamInfo streamInfo = storager.queryPlayBlackByDevice(deviceId, channelId); + StreamInfo streamInfo = storager.queryPlaybackByDevice(deviceId, channelId); if (streamInfo != null) { cmder.streamByeCmd(streamInfo.getSsrc()); @@ -64,7 +64,7 @@ // if (rtpInfo.getBoolean("exist")) { // return new ResponseEntity<String>(JSON.toJSONString(streamInfo),HttpStatus.OK); // }else { -// storager.stopPlayBlack(streamInfo); +// storager.stopPlayback(streamInfo); // streamInfo = cmder.playbackStreamCmd(device, channelId, startTime, endTime); // } // } @@ -77,29 +77,40 @@ } // 绛夊緟鎺ㄦ祦, TODO 榛樿瓒呮椂15s boolean lockFlag = true; + boolean rtpPushed = false; long lockStartTime = System.currentTimeMillis(); + JSONObject rtpInfo = null; + while (lockFlag) { try { if (System.currentTimeMillis() - lockStartTime > 75 * 1000) { - storager.stopPlayBlack(streamInfo); + storager.stopPlayback(streamInfo); + logger.info("鎾斁绛夊緟瓒呮椂"); return new ResponseEntity<String>("timeout",HttpStatus.OK); }else { - streamInfo = storager.queryPlayBlackByDevice(deviceId, channelId); - JSONObject rtpInfo = zlmresTfulUtils.getRtpInfo(streamId); - if (rtpInfo != null && rtpInfo.getBoolean("exist") && streamInfo.getFlv() != null){ + streamInfo = storager.queryPlaybackByDevice(deviceId, channelId); + if (!rtpPushed) { + logger.info("鏌ヨRTP鎺ㄦ祦淇℃伅..."); + rtpInfo = zlmresTfulUtils.getRtpInfo(streamId); + } + if (rtpInfo != null && rtpInfo.getBoolean("exist") && streamInfo != null && streamInfo.getFlv() != null){ + logger.info("鏌ヨ娴佺紪鐮佷俊鎭細"+streamInfo.getFlv()); + rtpPushed = true; + Thread.sleep(2000); JSONObject mediaInfo = zlmresTfulUtils.getMediaInfo("rtp", "rtmp", streamId); if (mediaInfo.getInteger("code") == 0 && mediaInfo.getBoolean("online")) { lockFlag = false; + logger.info("娴佺紪鐮佷俊鎭凡鑾峰彇"); JSONArray tracks = mediaInfo.getJSONArray("tracks"); streamInfo.setTracks(tracks); - storager.startPlayBlack(streamInfo); + storager.startPlayback(streamInfo); }else { - + logger.info("娴佺紪鐮佷俊鎭湭鑾峰彇锛�2绉掑悗閲嶈瘯..."); } }else { Thread.sleep(2000); continue; - }; + } } } catch (InterruptedException e) { e.printStackTrace(); -- Gitblit v1.8.0