package com.ld.igds.protocol.vlcmedia; import com.ld.igds.camera.ApiCameraService; import com.ld.igds.camera.CameraUtil; import com.ld.igds.camera.data.ApiCameraData; import com.ld.igds.camera.data.ApiCameraResp; import com.ld.igds.camera.data.ApiSnapReq; import com.ld.igds.protocol.snap.SnapPluginService; import com.ld.igds.sec.dto.SecCameraDto; import com.ld.onvif.OnvifService; import com.ld.onvif.data.OnvifResult; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; /** * 风正致远自有流媒体服务器 */ @Component public class VlcMediaService implements ApiCameraService { @Autowired private SnapPluginService snapPluginService; @Autowired private OnvifService onvifService; @Override public String getPlayType() { return CameraUtil.PLAY_TYPE_VLC; } @Override public ApiCameraResp getPlayAddr(ApiCameraData apiCameraDto) { if (StringUtils.isEmpty(apiCameraDto.getMediaAddr())) { return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "摄像头没有配置rtsp地址"); } return new ApiCameraResp(apiCameraDto.getMediaAddr()); } @Override public ApiCameraResp ptzMedia(ApiCameraData param) { if (StringUtils.isEmpty(param.getIp()) || null == param.getPortV() || StringUtils.isEmpty(param.getLoginId()) || StringUtils.isEmpty(param.getPwd())) { return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "没有获取到当前摄像机信息,不支持云台控制"); } try { OnvifResult result = onvifService.ptz(param.getIp(), param.getPortV(), param.getLoginId(), param.getPwd(), param.getCommand(), 0.5); return new ApiCameraResp(result.get("code")+"", (String)result.get("msg")); } catch (Exception e) { return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "后端执行异常" + e.getMessage()); } } @Override public ApiCameraResp ptzPreset(ApiCameraData param) { if (StringUtils.isEmpty(param.getIp()) || null == param.getPortV() || StringUtils.isEmpty(param.getLoginId()) || StringUtils.isEmpty(param.getPwd())) { return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "没有获取到当前摄像机信息,不支持云台控制"); } try { OnvifResult result = onvifService.preset(param.getIp(), param.getPortV(), param.getLoginId(), param.getPwd(), param.getPreset()); return new ApiCameraResp((String)result.get("code"), (String)result.get("msg")); } catch (Exception e) { return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "后端执行异常" + e.getMessage()); } } @Override public ApiCameraResp keepAlive(ApiCameraData apiCameraDto) { return new ApiCameraResp(); } @Override public List searchCamera(ApiCameraData apiCameraDto) { return null; } @Override public ApiCameraResp snapImg(ApiSnapReq apiCameraDto) { if (CameraUtil.SNAP_TYPE_FZZY_PLUGIN.equals(apiCameraDto.getSnapType())) { return snapPluginService.snapImg(apiCameraDto); } return null; } }