| 
					
				 | 
			
			
				@@ -34,11 +34,6 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.ResourceUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.web.context.request.async.DeferredResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.sip.DialogTerminatedEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.sip.ResponseEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.sip.TimeoutEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.sip.TransactionTerminatedEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import javax.sip.message.Response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.io.FileNotFoundException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.UUID; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -286,16 +281,35 @@ public class PlayServiceImpl implements IPlayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return mediaServerItem; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public void onPublishHandlerForPlayBack(MediaServerItem mediaServerItem, JSONObject resonse, String deviceId, String channelId, String uuid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         RequestMessage msg = new RequestMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        msg.setKey(DeferredResultHolder.CALLBACK_CMD_PLAY + deviceId + channelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        msg.setKey(DeferredResultHolder.CALLBACK_CMD_PLAYBACK + deviceId + channelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         msg.setId(uuid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StreamInfo streamInfo = onPublishHandler(mediaServerItem, resonse, deviceId, channelId, uuid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (streamInfo != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             redisCatchStorage.startPlayback(streamInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             msg.setData(JSON.toJSONString(streamInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultHolder.invokeResult(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logger.warn("设备回放API调用失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            msg.setData("设备回放API调用失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultHolder.invokeResult(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void onPublishHandlerForDownload(MediaServerItem mediaServerItem, JSONObject response, String deviceId, String channelId, String uuid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        RequestMessage msg = new RequestMessage(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        msg.setKey(DeferredResultHolder.CALLBACK_CMD_DOWNLOAD + deviceId + channelId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        msg.setId(uuid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StreamInfo streamInfo = onPublishHandler(mediaServerItem, response, deviceId, channelId, uuid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (streamInfo != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            redisCatchStorage.startDownload(streamInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            msg.setData(JSON.toJSONString(streamInfo)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultHolder.invokeResult(msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logger.warn("设备预览API调用失败!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             msg.setData("设备预览API调用失败!"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -303,6 +317,7 @@ public class PlayServiceImpl implements IPlayService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public StreamInfo onPublishHandler(MediaServerItem mediaServerItem, JSONObject resonse, String deviceId, String channelId, String uuid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String streamId = resonse.getString("stream"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         JSONArray tracks = resonse.getJSONArray("tracks"); 
			 |