‘liusuyi’
2024-04-19 39004678a36c17fcea0674b54675a76c2d3b0528
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -29,6 +29,7 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
@@ -384,9 +385,25 @@
        }
    }
    //本地抓图
    @Override
    public String captureJPEGPicture(CameraCmd cmd) {
        return null;
    public AjaxResult localCapture(CameraCmd cmd) {
        try {
            String cameraId = cmd.getCameraId();
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
              return   cameraSDK.localCapture(cmd);
            }
            else
            {
                return AjaxResult.error("摄像头不存在");
            }
        } catch (Exception ex) {
            log.error("手动抓图异常:" + ex.getMessage());
            return AjaxResult.error("手动抓图异常:" + ex.getMessage());
        }
    }
    //抓图
@@ -829,4 +846,43 @@
            return AjaxResult.error("获取相机架设参数异常:" + ex.getMessage());
        }
    }
    //本地录像开始
    @Override
    public AjaxResult localRecordStart(CameraCmd cmd) {
        try {
            String cameraId = cmd.getCameraId();
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                return cameraSDK.localRecordStart(cmd);
            } else {
                return AjaxResult.error("相机不存在");
            }
        } catch (Exception ex) {
            log.error("本地录像开始异常:" + ex.getMessage());
            return AjaxResult.error("本地录像开始异常:" + ex.getMessage());
        }
    }
    //本地录像停止
    @Override
    public AjaxResult localRecordStop(CameraCmd cmd) {
        try {
            String cameraId = cmd.getCameraId();
            ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
            if (ardCamera != null) {
                String factory = ardCamera.getFactory();
                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
                return cameraSDK.localRecordStop(cmd);
            }
            else
            {
                return AjaxResult.error("相机不存在");
            }
        } catch (Exception ex) {
            log.error("本地录像停止异常:" + ex.getMessage());
            return AjaxResult.error("本地录像停止异常:" + ex.getMessage());
        }
    }
}