From b6e604f2449bb65dfaafb0f0741ba54ff0d2f9c2 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 30 四月 2024 15:20:03 +0800
Subject: [PATCH] 修改云端录像详情页使用直接访问zlm的方式播放录像
---
src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java | 52 ++++++++++++++++++++++++++++++++++++----------------
1 files changed, 36 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
index 4f6d3e9..6f6d5ea 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/AssistRESTfulUtils.java
@@ -2,7 +2,8 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
+import com.genersoft.iot.vmp.utils.SSLSocketClientUtil;
import okhttp3.*;
import okhttp3.logging.HttpLoggingInterceptor;
import org.jetbrains.annotations.NotNull;
@@ -11,6 +12,7 @@
import org.springframework.stereotype.Component;
import org.springframework.util.ObjectUtils;
+import javax.net.ssl.X509TrustManager;
import java.io.IOException;
import java.net.ConnectException;
import java.net.SocketTimeoutException;
@@ -36,7 +38,7 @@
private OkHttpClient getClient(){
return getClient(null);
}
-
+
private OkHttpClient getClient(Integer readTimeOut){
if (client == null) {
if (readTimeOut == null) {
@@ -57,6 +59,10 @@
// OkHttp閫茶娣诲姞鏀旀埅鍣╨oggingInterceptor
httpClientBuilder.addInterceptor(logging);
}
+ X509TrustManager manager = SSLSocketClientUtil.getX509TrustManager();
+ // 璁剧疆ssl
+ httpClientBuilder.sslSocketFactory(SSLSocketClientUtil.getSocketFactory(manager), manager);
+ httpClientBuilder.hostnameVerifier(SSLSocketClientUtil.getHostnameVerifier());//蹇界暐鏍¢獙
client = httpClientBuilder.build();
}
return client;
@@ -64,7 +70,7 @@
}
- public JSONObject sendGet(MediaServerItem mediaServerItem, String api, Map<String, Object> param, RequestCallback callback) {
+ public JSONObject sendGet(MediaServer mediaServerItem, String api, Map<String, Object> param, RequestCallback callback) {
OkHttpClient client = getClient();
if (mediaServerItem == null) {
@@ -74,11 +80,11 @@
logger.warn("鏈惎鐢ˋssist鏈嶅姟");
return null;
}
- StringBuffer stringBuffer = new StringBuffer();
- stringBuffer.append(String.format("http://%s:%s/%s", mediaServerItem.getIp(), mediaServerItem.getRecordAssistPort(), api));
+ StringBuilder stringBuffer = new StringBuilder();
+ stringBuffer.append(api);
JSONObject responseJSON = null;
- if (param != null && param.keySet().size() > 0) {
+ if (param != null && !param.keySet().isEmpty()) {
stringBuffer.append("?");
int index = 1;
for (String key : param.keySet()){
@@ -93,6 +99,7 @@
}
String url = stringBuffer.toString();
+ logger.info("[璁块棶assist]锛� {}", url);
Request request = new Request.Builder()
.get()
.url(url)
@@ -148,13 +155,15 @@
return responseJSON;
}
- public JSONObject sendPost(MediaServerItem mediaServerItem, String api, JSONObject param, ZLMRESTfulUtils.RequestCallback callback, Integer readTimeOut) {
+ public JSONObject sendPost(MediaServer mediaServerItem, String url,
+ JSONObject param, ZLMRESTfulUtils.RequestCallback callback,
+ Integer readTimeOut) {
OkHttpClient client = getClient(readTimeOut);
if (mediaServerItem == null) {
return null;
}
- String url = String.format("http://%s:%s/%s", mediaServerItem.getIp(), mediaServerItem.getRecordAssistPort(), api);
+ logger.info("[璁块棶assist]锛� {}, 鍙傛暟锛� {}", url, param);
JSONObject responseJSON = new JSONObject();
//-2鑷畾涔夋祦濯掍綋 璋冪敤閿欒鐮�
responseJSON.put("code",-2);
@@ -235,14 +244,14 @@
return responseJSON;
}
- public JSONObject getInfo(MediaServerItem mediaServerItem, RequestCallback callback){
+ public JSONObject getInfo(MediaServer mediaServerItem, RequestCallback callback){
Map<String, Object> param = new HashMap<>();
return sendGet(mediaServerItem, "api/record/info",param, callback);
}
- public JSONObject addTask(MediaServerItem mediaServerItem, String app, String stream, String startTime,
+ public JSONObject addTask(MediaServer mediaServerItem, String app, String stream, String startTime,
String endTime, String callId, List<String> filePathList, String remoteHost) {
-
+
JSONObject videoTaskInfoJSON = new JSONObject();
videoTaskInfoJSON.put("app", app);
videoTaskInfoJSON.put("stream", stream);
@@ -253,19 +262,30 @@
if (!ObjectUtils.isEmpty(remoteHost)) {
videoTaskInfoJSON.put("remoteHost", remoteHost);
}
-
- return sendPost(mediaServerItem, "api/record/file/download/task/add", videoTaskInfoJSON, null, 30);
+ String urlStr = String.format("%s/api/record/file/download/task/add", remoteHost);;
+ return sendPost(mediaServerItem, urlStr, videoTaskInfoJSON, null, 30);
}
- public JSONObject queryTaskList(MediaServerItem mediaServerItem, String taskId, Boolean isEnd) {
+ public JSONObject queryTaskList(MediaServer mediaServerItem, String app, String stream, String callId,
+ String taskId, Boolean isEnd, String scheme) {
Map<String, Object> param = new HashMap<>();
+ if (!ObjectUtils.isEmpty(app)) {
+ param.put("app", app);
+ }
+ if (!ObjectUtils.isEmpty(stream)) {
+ param.put("stream", stream);
+ }
+ if (!ObjectUtils.isEmpty(callId)) {
+ param.put("callId", callId);
+ }
if (!ObjectUtils.isEmpty(taskId)) {
param.put("taskId", taskId);
}
if (!ObjectUtils.isEmpty(isEnd)) {
param.put("isEnd", isEnd);
}
-
- return sendGet(mediaServerItem, "api/record/file/download/task/list", param, null);
+ String urlStr = String.format("%s://%s:%s/api/record/file/download/task/list",
+ scheme, mediaServerItem.getIp(), mediaServerItem.getRecordAssistPort());;
+ return sendGet(mediaServerItem, urlStr, param, null);
}
}
--
Gitblit v1.8.0