| | |
| | | previewinfo.bBlocked = 0;//0- 非阻塞取流,1-阻塞取流 |
| | | previewinfo.byNPQMode = 0;//NPQ模式:0-直连模式,1-过流媒体模式 |
| | | previewinfo.write(); |
| | | if (GlobalVariable.previewMap.containsKey(cameraId)) { |
| | | Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); |
| | | hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); |
| | | GlobalVariable.previewMap.remove(cameraId); |
| | | log.debug("停止当前录像"); |
| | | } |
| | | //if (GlobalVariable.previewMap.containsKey(cameraId)) { |
| | | // Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); |
| | | // hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); |
| | | // GlobalVariable.previewMap.remove(cameraId); |
| | | // log.debug("停止当前录像"); |
| | | //} |
| | | int lRealHandle = hCNetSDK.NET_DVR_RealPlay_V40(userId, previewinfo, null, null); |
| | | if (lRealHandle == -1) { |
| | | int code = hCNetSDK.NET_DVR_GetLastError(); |
| | |
| | | return AjaxResult.error("本地录像取流失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); |
| | | } |
| | | log.debug("本地录像取流成功"); |
| | | GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); |
| | | GlobalVariable.previewMap.put(cameraId, lRealHandle); |
| | | if (!hCNetSDK.NET_DVR_SaveRealData_V30(GlobalVariable.previewMap.get(cameraId), 2, path)) { |
| | | //GlobalVariable.threadMap.put(cameraId, Thread.currentThread().getName()); |
| | | //GlobalVariable.previewMap.put(cameraId, lRealHandle); |
| | | if (!hCNetSDK.NET_DVR_SaveRealData_V30(lRealHandle, 2, path)) { |
| | | int code = hCNetSDK.NET_DVR_GetLastError(); |
| | | log.error("保存视频文件到临时文件夹失败 错误码为: " + hCNetSDK.NET_DVR_GetLastError()); |
| | | return AjaxResult.error("本地录像取流失败: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code)); |
| | | } |
| | | log.debug("本地录像开始"); |
| | | return AjaxResult.success("录像开始,录像ID:" + lRealHandle); |
| | | return AjaxResult.success("录像开始", lRealHandle); |
| | | } catch (Exception ex) { |
| | | log.error("本地录像开始异常" + ex.getMessage()); |
| | | return AjaxResult.error("本地录像开始异常" + ex.getMessage()); |
| | |
| | | try { |
| | | String cameraId = cmd.getCameraId(); |
| | | Integer channelNum = cmd.getChanNo(); |
| | | String recordPath = FileUtils.createFile("D:/LocalRecordTemp/" + cameraId + ".mp4"); |
| | | Integer lRealHandle = cmd.getRecordId().intValue(); |
| | | |
| | | if (!GlobalVariable.loginMap.containsKey(cameraId)) { |
| | | return AjaxResult.error("设备未登录"); |
| | | } |
| | |
| | | previewinfo.byNPQMode = 0;//NPQ模式:0-直连模式,1-过流媒体模式 |
| | | previewinfo.write(); |
| | | //endregion |
| | | if (GlobalVariable.previewMap.containsKey(cameraId)) { |
| | | Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); |
| | | //if (GlobalVariable.previewMap.containsKey(cameraId)) { |
| | | // Integer lRealHandle = GlobalVariable.previewMap.get(cameraId); |
| | | // hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); |
| | | // GlobalVariable.previewMap.remove(cameraId); |
| | | //} |
| | | hCNetSDK.NET_DVR_StopRealPlay(lRealHandle); |
| | | GlobalVariable.previewMap.remove(cameraId); |
| | | } |
| | | log.debug("本地录像停止"); |
| | | String recordPath = FileUtils.createFile("D:/LocalRecordTemp/" + cameraId + ".mp4"); |
| | | byte[] recordBytes = Files.readAllBytes(Paths.get(recordPath)); |
| | | //OutputStream outputStream = response.getOutputStream(); |
| | | //outputStream.write(imageBytes); |