package org.springblade.jfpt.hk.util; import com.alibaba.fastjson.JSONObject; import com.hikvision.artemis.sdk.ArtemisHttpUtil; import com.hikvision.artemis.sdk.config.ArtemisConfig; import org.springblade.jfpt.hk.constant.HkConstant; import org.springblade.jfpt.hk.constant.ProtocolConstant; import java.util.HashMap; import java.util.Map; import static org.springblade.jfpt.hk.constant.HkConstant.ARTEMIS_PATH; public class GetCameraPreviewURL { /** * 获取视频预览数据 * @param url 视频预览url * @param cameraIndexCode 监控点唯一标识 * @return */ public static String GetCameraPreviewURL(String url,String cameraIndexCode,String protocol) { /** * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数. */ // artemis网关服务器ip端口 ArtemisConfig.host = HkConstant.HOST; // 秘钥appKey ArtemisConfig.appKey = HkConstant.AppKey; // 秘钥appSecret ArtemisConfig.appSecret = HkConstant.AppSecret; /** * STEP3:设置接口的URI地址 */ final String apiUrl = ARTEMIS_PATH + url; Map path = new HashMap(2) { { //根据现场环境部署确认是http还是https put("https://", apiUrl); } }; /** * STEP4:设置参数提交方式 */ String contentType = "application/json"; /** * STEP5:组装请求参数 */ JSONObject jsonBody = new JSONObject(); jsonBody.put("cameraIndexCode", cameraIndexCode); jsonBody.put("streamType", 0); jsonBody.put("protocol", protocol); jsonBody.put("transmode", 1); jsonBody.put("expand", "streamform=ps"); String body = jsonBody.toJSONString(); /** * STEP6:调用接口 */ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数 return result; } /** * 语音对讲 * @param url 语音对讲url * @param cameraIndexCode 监控点唯一标识 * @return */ public static String GetTalkURLs(String url,String cameraIndexCode) { /** * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数. */ // artemis网关服务器ip端口 ArtemisConfig.host = HkConstant.HOST; // 秘钥appKey ArtemisConfig.appKey = HkConstant.AppKey; // 秘钥appSecret ArtemisConfig.appSecret = HkConstant.AppSecret; /** * STEP3:设置接口的URI地址 */ final String apiUrl = ARTEMIS_PATH + url; Map path = new HashMap(2) { { //根据现场环境部署确认是http还是https put("https://", apiUrl); } }; /** * STEP4:设置参数提交方式 */ String contentType = "application/json"; /** * STEP5:组装请求参数 */ JSONObject jsonBody = new JSONObject(); jsonBody.put("cameraIndexCode", cameraIndexCode); jsonBody.put("streamType", 0); jsonBody.put("transmode", 1); jsonBody.put("expand", "streamform=ps"); jsonBody.put("protocol", "ws"); String body = jsonBody.toJSONString(); /** * STEP6:调用接口 */ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数 return result; } /** * 获取监控点资源分页数据 * @param url 监控资源url * @return */ public static String GetCameraResourcePage(Integer pageNo,Integer pageSize,String url) { /** * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数. */ // artemis网关服务器ip端口 ArtemisConfig.host = HkConstant.HOST; // 秘钥appKey ArtemisConfig.appKey = HkConstant.AppKey; // 秘钥appSecret ArtemisConfig.appSecret = HkConstant.AppSecret; /** * STEP3:设置接口的URI地址 */ final String apiUrl = ARTEMIS_PATH + url; Map path = new HashMap(2) { { //根据现场环境部署确认是http还是https put("https://", apiUrl); } }; /** * STEP4:设置参数提交方式 */ String contentType = "application/json"; /** * STEP5:组装请求参数 */ JSONObject jsonBody = new JSONObject(); jsonBody.put("pageNo", pageNo); jsonBody.put("pageSize", pageSize); String body = jsonBody.toJSONString(); /** * STEP6:调用接口并返回数据 * post请求application/json类型参数; */ return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null); } public static void main(String[] args) { String result = GetCameraResourcePage(1,1,HkConstant.cameras); String result1 = GetCameraPreviewURL(HkConstant.previewURLs,"1f792961883543c6868cc8b200291962", ProtocolConstant.HLS); String result2 = GetTalkURLs(HkConstant.previewURLs,"1f792961883543c6868cc8b200291962"); System.out.println("result结果示例: " + result); System.out.println("result1 = " + result1); System.out.println("result2 = " + result2); } }