From df42877cfd997c46fce3e76557ff2eedccb64224 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 13 Apr 2023 17:47:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraPreviewURL.java | 272 +++++++++++++++++++++++++++++------------------------
1 files changed, 148 insertions(+), 124 deletions(-)
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraPreviewURL.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraPreviewURL.java
index 3052034..1fa4208 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraPreviewURL.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/hk/util/GetCameraPreviewURL.java
@@ -18,14 +18,13 @@
public class GetCameraPreviewURL {
/**
- * 获取视频预览数据
+ * 公共方法
*
- * @param url 视频预览url
- * @param cameraIndexCode 监控点唯一标识
+ * @param url
+ * @param body
* @return
*/
- public static String GetCameraPreviewURL(String url, String cameraIndexCode, String protocol) {
-
+ public static String common(String url, String body) {
/**
* STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
*/
@@ -53,19 +52,27 @@
*/
String contentType = "application/json";
+
/**
- * STEP5:组装请求参数
+ * STEP6:调用接口
+ * // post请求application/json类型参数
*/
-// JSONObject jsonBody = new JSONObject();
-// jsonBody.put("indexCode", cameraIndexCode);
-// jsonBody.put("streamType", 0);
-// jsonBody.put("netZoneCode", 0);
-// jsonBody.put("protocol", protocol);
-// jsonBody.put("transmode", 1);
-// jsonBody.put("expireTime", 300);
-// String body = jsonBody.toJSONString();
+ String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);
+ // 返回数据
+ return result;
+ }
-
+ /**
+ * 获取视频预览数据
+ *
+ * @param url 视频预览url
+ * @param cameraIndexCode 监控点唯一标识
+ * @return
+ */
+ public static String GetCameraPreviewURL(String url, String cameraIndexCode, String protocol) {
+ /**
+ * 组装请求参数
+ */
JSONObject jsonBody = new JSONObject();
jsonBody.put("cameraIndexCode", cameraIndexCode);
jsonBody.put("streamType", 0);
@@ -73,13 +80,8 @@
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;
+ // 调用公共方法
+ return common(url,body);
}
/**
@@ -89,37 +91,12 @@
* @param cameraCode 监控点唯一标识
* @return
*/
- public static String QueryCameraPreviewURL(String url, String cameraCode, String resourceType, String key) {
-
+ public static String QueryCameraPreviewURL(String url,
+ String cameraCode,
+ String resourceType,
+ String key) {
/**
- * 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<String, String> path = new HashMap<String, String>(2) {
- {
- //根据现场环境部署确认是http还是https
- put("https://", apiUrl);
- }
- };
-
- /**
- * STEP4:设置参数提交方式
- */
- String contentType = "application/json";
-
- /**
- * STEP5:组装请求参数
+ * 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
List<JSONObject> list = new ArrayList<>();
@@ -136,11 +113,7 @@
jsonBody.put("expressions", list);
String body = jsonBody.toJSONString();
System.out.println(jsonBody);
- /**
- * STEP6:调用接口
- */
- String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
- return result;
+ return common(url,body);
}
@@ -152,36 +125,8 @@
* @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<String, String> path = new HashMap<String, String>(2) {
- {
- //根据现场环境部署确认是http还是https
- put("https://", apiUrl);
- }
- };
-
- /**
- * STEP4:设置参数提交方式
- */
- String contentType = "application/json";
-
- /**
- * STEP5:组装请求参数
+ * 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
jsonBody.put("cameraIndexCode", cameraIndexCode);
@@ -193,11 +138,73 @@
jsonBody.put("talkIndexCode", "ce744c4c67df464f92994185d825b6fa");
jsonBody.put("protocol", "wss");
String body = jsonBody.toJSONString();
+ return common(url,body);
+ }
+
+ /**
+ * 云台控制
+ * action 0-开始 1-停止
+ * 注:GOTO_PRESET命令下填任意值均可转到预置点,建议填0即可
+ * @param url 云台控制url
+ * @param cameraIndexCode 监控点唯一标识
+ * @param command 命令
+ * @return
+ */
+ public static String controlling(String url,
+ String cameraIndexCode,
+ Integer action,
+ String command,
+ Integer speed,
+ Integer presetIndex
+ ) {
/**
- * STEP6:调用接口
+ * 组装请求参数
*/
- String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);// post请求application/json类型参数
- return result;
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", cameraIndexCode);
+ jsonBody.put("action", action);
+ jsonBody.put("command", command);
+ jsonBody.put("speed", speed);
+ jsonBody.put("presetIndex", presetIndex);
+ String body = jsonBody.toJSONString();
+ /**
+ * 调用接口
+ */
+ return common(url,body);
+ }
+
+ /**
+ * 云台控制
+ *
+ * @param url 云台控制url
+ * @param cameraIndexCode 监控点唯一标识
+ * @param startX 命令
+ * @param startY 命令
+ * @param endX 命令
+ * @param endY 命令
+ * @return
+ */
+ public static String selZoomURLs(String url,
+ String cameraIndexCode,
+ Integer startX,
+ Integer startY,
+ Integer endX,
+ Integer endY
+ ) {
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", cameraIndexCode);
+ jsonBody.put("startX", startX);
+ jsonBody.put("startY", startY);
+ jsonBody.put("endX", endX);
+ jsonBody.put("endY", endY);
+ String body = jsonBody.toJSONString();
+ /**
+ * 调用接口
+ */
+ return common(url,body);
}
@@ -208,35 +215,8 @@
* @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<String, String> path = new HashMap<String, String>(2) {
- {
- //根据现场环境部署确认是http还是https
- put("https://", apiUrl);
- }
- };
-
- /**
- * STEP4:设置参数提交方式
- */
- String contentType = "application/json";
-
- /**
- * STEP5:组装请求参数
+ * 组装请求参数
*/
JSONObject jsonBody = new JSONObject();
jsonBody.put("pageNo", pageNo);
@@ -244,23 +224,67 @@
String body = jsonBody.toJSONString();
/**
- * STEP6:调用接口并返回数据
+ * 调用接口并返回数据
* post请求application/json类型参数;
*/
- return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType, null);
+ return common(url, body);
+ }
+
+ /**
+ * 抓图
+ *
+ * @param url 监控资源url
+ * @return
+ */
+ public static String manualCaptureUrls(String url,String cameraIndexCode) {
+ /**
+ * 组装请求参数
+ */
+ JSONObject jsonBody = new JSONObject();
+ jsonBody.put("cameraIndexCode", cameraIndexCode);
+ String body = jsonBody.toJSONString();
+
+ /**
+ * 调用接口并返回数据
+ * post请求application/json类型参数;
+ */
+ return common(url, body);
}
// public static void main(String[] args) {
//
// String result = GetCameraResourcePage(1, 10, HkConstant.cameras);
-// //根据设备id获取设备编号
-//// String result1 = QueryCameraPreviewURL(HkConstant.camerasID, "111111222", "encodeDevice", "deviceCode");
//
// JSONObject jsonObject1 = JSONObject.parseObject(result);
// JSONObject res1 = (JSONObject) jsonObject1.get("data");
// JSONArray arr1 = JSON.parseArray(res1.getString("list"));
// JSONObject data1 = (JSONObject) arr1.get(1);
// String code1 = data1.get("cameraIndexCode").toString();
+//
+// // 云台控制
+//// String right = controlling(HkConstant.controllingURLs,
+//// "ff1f050afd1c47829dec1ec14575c9e3",
+//// 0,
+//// "ZOOM_OUT",
+//// null,
+//// null
+//// );
+//// System.out.println("right = " + right);
+//
+//// // 放大
+//// String big = selZoomURLs(HkConstant.selZoomURLs,
+//// "ff1f050afd1c47829dec1ec14575c9e3",
+//// 55,
+//// 58,
+//// 22,
+//// 23
+//// );
+//// System.out.println("big = " + big);
+//
+// // 抓图
+//// String manualCapture = manualCaptureUrls(HkConstant.manualCaptureUrls,
+//// "ff1f050afd1c47829dec1ec14575c9e3");
+//// System.out.println("manualCapture = " + manualCapture);
//
// //根据设备编号获取子节点编号
//// String result2 = QueryCameraPreviewURL(HkConstant.camerasID, code1, "camera", "parentIndexCode");
@@ -274,16 +298,16 @@
// //e2cb261e14144f53a300769839d54753
// //根据子节点编号获取设备播放地址
// String result3 = GetCameraPreviewURL(HkConstant.previewURLs,
-// "ff1f050afd1c47829dec1ec14575c9e3", ProtocolConstant.WS);
+// "ff1f050afd1c47829dec1ec14575c9e3", ProtocolConstant.HLS);
// JSONObject jsonObject = JSONObject.parseObject(result3);
// Map map = (Map) jsonObject.get("data");
// //根据子节点编号获取音频对讲地址
//// String result4 = GetTalkURLs(HkConstant.talkURLs, code1);
//
-// System.out.println("result结果示例: " + result);
+//// System.out.println("result结果示例: " + result);
//// System.out.println("result1 = " + result1);
//// System.out.println("result2 = " + result2);
-// System.out.println("result3 = " + result3);
+//// System.out.println("result3 = " + result3);
// System.out.println("url = " + map.get("url"));
//// System.out.println("result4 = " + result4);
// }
--
Gitblit v1.9.3