Переглянути джерело

Merge remote-tracking branch 'origin/master'

hecheng 3 роки тому
батько
коміт
5b4f814c0a

+ 2 - 0
zd-modules/zd-camera/src/main/java/com/zd/iot/vmp/onvif/IONVIFServer.java

@@ -20,4 +20,6 @@ public interface IONVIFServer {
     Boolean isRecording(MediaServerItem mediaServerItem, Map<String, Object> param) ;
 
     String stopRecord(MediaServerItem mediaServerItem, Map<String, Object> param) ;
+
+    Boolean closeStream(MediaServerItem mediaServerItem, Map<String, Object> param) ;
 }

+ 14 - 0
zd-modules/zd-camera/src/main/java/com/zd/iot/vmp/onvif/impl/ONVIFServerIMpl.java

@@ -206,6 +206,20 @@ public class ONVIFServerIMpl implements IONVIFServer {
         return null;
     }
 
+    @Override
+    public Boolean closeStream(MediaServerItem mediaServerItem, Map<String, Object> param) {
+        param.put("schema","rtsp");
+        param.put("api","close_streams");
+        param.put("force",1);
+        JSONObject jsonObject=getCommonRecord(mediaServerItem,param);
+        Integer code=jsonObject.getInteger("code");
+        Integer result=jsonObject.getInteger("result");
+        if(code==0 && result==0){
+            return true;
+        }
+        return false;
+    }
+
 
     private JSONObject getCommonRecord(MediaServerItem mediaServerItem,Map<String, Object> param) {
         OkHttpClient client = new OkHttpClient();

+ 2 - 1
zd-modules/zd-camera/src/main/java/com/zd/iot/vmp/vmanager/onvif/ONVIFController.java

@@ -217,8 +217,9 @@ public class ONVIFController {
         }
         String urlPath=onvifServer.stopRecord(mediaServerItem,map);
         urlPath=urlPath.replace("/.","/");
+        boolean isCloseTrue=onvifServer.closeStream(mediaServerItem,map);
         WVPResult<String> resultData = new WVPResult();
-        if(StringUtils.isNotBlank(urlPath)){
+        if(StringUtils.isNotBlank(urlPath) && isCloseTrue){
             resultData.setCode(HttpStatus.SUCCESS);
             resultData.setData(urlPath);
             resultData.setMsg("success");