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<SecCameraDto> 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;
|
}
|
}
|