From 5749cdd16cd79890c659775de9b1cb7e7ffda5b1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 29 十月 2020 10:45:23 +0800
Subject: [PATCH] Merge pull request #6 from lawrencehj/master

---
 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