From aad1f2dd7b10ec03d78d703bc2c31b9e679a82b6 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期一, 05 一月 2026 17:19:23 +0800
Subject: [PATCH] 监管视频逻辑调整
---
fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html | 63 ++++++++++++++++++--
fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js | 91 +++++++++++++++++-------------
fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java | 6 +-
3 files changed, 111 insertions(+), 49 deletions(-)
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
index 0c663cd..5b8e9b8 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/security/manager/SecManager.java
@@ -88,7 +88,7 @@
*/
public ApiCameraResp getPlayAddr(Camera param, String requireIp) {
- if (StringUtils.isEmpty(param.getId())) {
+ if (StringUtils.isEmpty(param.getId()) || StringUtils.isEmpty(param.getPlayType())) {
log.error("娌℃湁鑾峰彇鍒扮洃鎺т俊鎭紒");
return new ApiCameraResp("ERROR", "娌℃湁鑾峰彇鍒扮洃鎺т俊鎭紒");
}
@@ -108,7 +108,7 @@
apiCameraData.setIp(camera.getIp());
apiCameraData.setCtrlPort(camera.getControlPort());
apiCameraData.setWebPort(camera.getWebPort());
- apiCameraData.setPlayType(camera.getPlayType());
+ apiCameraData.setPlayType(param.getPlayType());
apiCameraData.setSnapType(camera.getSnapType());
apiCameraData.setSn(camera.getSn());
apiCameraData.setChannel(camera.getChanNum());
@@ -119,7 +119,7 @@
apiCameraData.setMediaAddr(camera.getMediaAddr());
//鏍规嵁鎾斁鏂瑰紡鑾峰彇瀵瑰簲鐨勬挱鏀惧湴鍧�
- ApiCameraResp resp = apiCameraManager.getApiCameraService(camera.getPlayType()).getPlayAddr(apiCameraData);
+ ApiCameraResp resp = apiCameraManager.getApiCameraService(apiCameraData.getPlayType()).getPlayAddr(apiCameraData);
return resp;
}
diff --git a/fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js b/fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js
index 7ca15fb..aff5113 100644
--- a/fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js
+++ b/fzzy-igdss-web/src/main/resources/static/security/video-list-dept.js
@@ -7,7 +7,7 @@
var playCamera = null;
var playList = {};
-var playTag = 1; //榛樿鍐呯綉鎾斁
+var playTag = "1"; //榛樿鍐呯綉鎾斁
var playUrl1 = null;
var videoId1 = null;
@@ -47,14 +47,32 @@
let mediaStream9;
$(function () {
- layui.use(['layer', 'table'], function () {
+ layui.use(['layer', 'form', 'table'], function () {
layer = layui.layer;
table = layui.table;
+ form = layui.form;
+
+ // 鐩戝惉鎾斁鏂瑰紡
+ form.on('select(select_play)', function (obj) {
+ return renderPlayType();
+ });
});
//鍒濆鍖栨覆鏌撴挱鏀惧垪琛�
renderList();
});
+
+/**
+ * 鍒囨崲鎾斁鏂瑰紡
+ */
+function renderPlayType() {
+ playTag = $("#playLan").val();
+
+ //鍐呯綉鎾斁锛岄噸缃悇涓挱鏀剧獥鍙�
+ reloadView(1);
+ reloadView(4);
+ reloadView(9);
+}
/**
* 娓叉煋鐩戞帶鍒楄〃
@@ -95,16 +113,21 @@
* @param index
*/
function getMedia(index) {
- if(windowsNum == null){
+ if (windowsNum == null) {
windowsNum = 1;
}
playCamera = null;
var camera = listCamera[index];
playList[windowsNum] = camera;
+ var playType = camera.playType;
+ if (playTag === "1") {
+ //鍐呯綉鎾斁,璧嬪�糤ebRtc鎾斁鏂瑰紡
+ playType = "WEB_RTC";
+ }
var data = {
id: camera.id,
- playType: camera.playType
+ playType: playType
};
$.ajax({
type: 'POST',
@@ -223,16 +246,22 @@
* 鍒ゆ柇鍐呯綉鎾斁杩樻槸澶栫綉鎾斁
*/
function startPlay() {
-
- startPlay1();
+ if (playTag === "1") {
+ //鍐呯綉鎾斁
+ startPlay1();
+ }
+ if (playTag === "2") {
+ //澶栫綉鎾斁
+ startPlay2();
+ }
}
/**
* 澶栫綉鎾斁
*/
-function startPlay1() {
+function startPlay2() {
- if(windowsNum > splitWin){
+ if (windowsNum > splitWin) {
windowsNum = 1;
}
if (!playCamera) {
@@ -240,28 +269,10 @@
}
if (playCamera.playUrl) {
+ var html = '<div class="mask" onclick="selectWin(' + splitWin + ',' + windowsNum + ')"></div>';
+ html += '<iframe src="' + playCamera.playUrl + '" width="99%" height="99%" frameborder="0" allowfullscreen></iframe>';
+ $("#f" + splitWin + "_d" + windowsNum).html(html);
- var divId = "#f" + splitWin + "_d" + windowsNum;
- var html = '<video class="video" id="video' + splitWin + '_' + windowsNum+'" style="width:100%;height: 100%" controls>';
- $(divId).html(html);
-
- if (flvjs.isSupported()) {
- var videoElement = document.getElementById("video" + splitWin + '_' + windowsNum);
- var flvPlayer = flvjs.createPlayer({
- type: 'flv',
- isLive: true,
- cors: true,
- url: playCamera.playUrl
- });
- flvPlayer.attachMediaElement(videoElement);
- flvPlayer.load();
- flvPlayer.play();
- }
-
- // var html = '<video class="video" id="video'+splitWin + "_" + windowsNum+'" autoplay playsinline="true" webkit-playsinline="true" crossorigin="anonymous"';
- // html += 'crossorigin="anonymous" src="blob:'+playCamera.playUrl+'" style="display: none;"></video>';
- // html += '<canvas width="100%" height="100%" style="height: 100%">';
- // $("#f" + splitWin + "_d" + windowsNum).html(html);
curCamera = playList[windowsNum];
} else {
$("#f" + splitWin + "_d" + windowsNum).html("鏈幏鍙栧埌鎽勫儚澶�(" + playCamera.cameraName + ")鎾斁淇℃伅锛侊紒");
@@ -271,9 +282,9 @@
/**
* 鍐呯綉鎾斁
*/
-function startPlay2() {
+function startPlay1() {
- if(windowsNum > splitWin){
+ if (windowsNum > splitWin) {
windowsNum = 1;
}
if (!playCamera) {
@@ -287,49 +298,49 @@
playUrl1 = playCamera.playUrl;
videoId1 = playCamera.cameraId;
webRtcToPlay1();
- }else if (windowsNum === 2) {
+ } else if (windowsNum === 2) {
playUrl2 = null;
mediaStream2 = null;
playUrl2 = playCamera.playUrl;
videoId2 = playCamera.cameraId;
webRtcToPlay2();
- }else if (windowsNum === 3) {
+ } else if (windowsNum === 3) {
playUrl3 = null;
mediaStream3 = null;
playUrl3 = playCamera.playUrl;
videoId3 = playCamera.cameraId;
webRtcToPlay3();
- }else if (windowsNum === 4) {
+ } else if (windowsNum === 4) {
playUrl4 = null;
mediaStream4 = null;
playUrl4 = playCamera.playUrl;
videoId4 = playCamera.cameraId;
webRtcToPlay4();
- }else if (windowsNum === 5) {
+ } else if (windowsNum === 5) {
playUrl5 = null;
mediaStream5 = null;
playUrl5 = playCamera.playUrl;
videoId5 = playCamera.cameraId;
webRtcToPlay5();
- }else if (windowsNum === 6) {
+ } else if (windowsNum === 6) {
playUrl6 = null;
mediaStream6 = null;
playUrl6 = playCamera.playUrl;
videoId6 = playCamera.cameraId;
webRtcToPlay6();
- }else if (windowsNum === 7) {
+ } else if (windowsNum === 7) {
playUrl7 = null;
mediaStream7 = null;
playUrl7 = playCamera.playUrl;
videoId7 = playCamera.cameraId;
webRtcToPlay7();
- }else if (windowsNum === 8) {
+ } else if (windowsNum === 8) {
playUrl8 = null;
mediaStream8 = null;
playUrl8 = playCamera.playUrl;
videoId8 = playCamera.cameraId;
webRtcToPlay8();
- }else if (windowsNum === 9) {
+ } else if (windowsNum === 9) {
playUr9 = null;
mediaStream9 = null;
playUrl9 = playCamera.playUrl;
@@ -598,6 +609,7 @@
}
/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
+
/*============= webRtc瑙嗛鎾斁5 ----- 寮�濮� ===============*/
/**
* 寮�濮嬫挱鏀�
@@ -661,6 +673,7 @@
}
/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
+
/*============= webRtc瑙嗛鎾斁4 ----- 寮�濮� ===============*/
/**
* 寮�濮嬫挱鏀�
diff --git a/fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html b/fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html
index fdbe8e8..c9737a3 100644
--- a/fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html
+++ b/fzzy-igdss-web/src/main/resources/templates/security/video-list-dept.html
@@ -16,6 +16,7 @@
height: 100%;
overflow-y: hidden;
}
+
/* 椤甸潰鍩虹閲嶇疆 */
body {
margin: 0;
@@ -97,17 +98,21 @@
color: #fff;
cursor: pointer;
}
+
.sp-table {
overflow: auto;
}
+
.sp-table::-webkit-scrollbar {
display: none; /* 闅愯棌婊氬姩鏉� */
}
+
.fenping_icon {
position: absolute;
- right: 30px;
- top: 16px;
+ right: 20px;
+ top: 15px;
}
+
.div1 {
width: 100%;
height: 100%;
@@ -120,6 +125,7 @@
box-sizing: border-box;
overflow: hidden;
}
+
.div_v1 {
background-color: #333;
font-size: 24px;
@@ -131,6 +137,7 @@
box-sizing: border-box;
z-index: 1; /* 鍩虹灞傜骇 */
}
+
/* 閫変腑椤癸細绾㈣壊杈规锛堣鐩栬嚜韬懆杈圭殑鐧借壊鍒嗛殧绾匡級 */
.div_v1.active::after {
content: '';
@@ -145,6 +152,7 @@
box-sizing: border-box;
transition: all 0.2s ease;
}
+
.div4 {
width: 100%;
height: 100%;
@@ -157,6 +165,7 @@
box-sizing: border-box;
overflow: hidden;
}
+
.div_v4 {
background-color: #333;
font-size: 24px;
@@ -168,6 +177,7 @@
box-sizing: border-box;
z-index: 1; /* 鍩虹灞傜骇 */
}
+
/* 閫変腑椤癸細绾㈣壊杈规锛堣鐩栬嚜韬懆杈圭殑鐧借壊鍒嗛殧绾匡級 */
.div_v4.active::after {
content: '';
@@ -182,6 +192,7 @@
box-sizing: border-box;
transition: all 0.2s ease;
}
+
.div9 {
width: 100%;
height: 100%;
@@ -194,6 +205,7 @@
box-sizing: border-box;
overflow: hidden;
}
+
.div_v9 {
background-color: #333;
font-size: 24px;
@@ -205,6 +217,7 @@
box-sizing: border-box;
z-index: 1; /* 鍩虹灞傜骇 */
}
+
/* 閫変腑椤癸細绾㈣壊杈规锛堣鐩栬嚜韬懆杈圭殑鐧借壊鍒嗛殧绾匡級 */
.div_v9.active::after {
content: '';
@@ -219,9 +232,32 @@
box-sizing: border-box;
transition: all 0.2s ease;
}
+
.video {
width: 100%;
height: 100%;
+ }
+
+ .playList {
+ position: absolute;
+ right: 200px;
+ font-size: 16px;
+ width: 200px;
+ }
+ .layui-input {
+ background-color: #999;
+ border-color: #999;
+ }
+
+ /* 閬僵灞傦細瑕嗙洊鏁翠釜瀹瑰櫒锛岄�忔槑锛岀偣鍑绘椂瑙﹀彂鐖禿iv浜嬩欢 */
+ .mask {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background: transparent;
+ z-index: 1; /* 閬僵灞傚湪iframe涓婃柟 */
}
</style>
</head>
@@ -238,10 +274,21 @@
<h3>
<i></i>瑙嗛瀹炴椂棰勮
</h3>
+ <div class="playList">
+ <form class="layui-form">
+ <select id="playLan" lay-filter="select_play" class="form-control">
+ <option value="1">鍐呯綉鎾斁</option>
+ <option value="2">澶栫綉鎾斁</option>
+ </select>
+ </form>
+ </div>
<div class="fenping_icon">
- <img onclick="fenping(1)" id="f_1" style="width: 30px" th:src="@{/img/web/group/fp_1_active.png}"/>
- <img onclick="fenping(4)" id="f_4" style="width: 30px" th:src="@{/img/web/group/fp_4.png}"/>
- <img onclick="fenping(9)" id="f_9" style="width: 30px" th:src="@{/img/web/group/fp_9.png}"/>
+ <img onclick="fenping(1)" id="f_1" style="width: 38px"
+ th:src="@{/img/web/group/fp_1_active.png}"/>
+ <img onclick="fenping(4)" id="f_4" style="width: 38px"
+ th:src="@{/img/web/group/fp_4.png}"/>
+ <img onclick="fenping(9)" id="f_9" style="width: 38px"
+ th:src="@{/img/web/group/fp_9.png}"/>
</div>
</div>
@@ -366,11 +413,13 @@
</ul>
</div>
<div class="sp-bianbei fl">
- <button type="button" class="sp-sxBtn sp-czBtn" onmousedown="ptzControl(9)" onmouseup="zoomStop()">
+ <button type="button" class="sp-sxBtn sp-czBtn" onmousedown="ptzControl(9)"
+ onmouseup="zoomStop()">
<i>锛�</i>
</button>
<span>鍙樼劍</span>
- <button type="button" class="sp-fdBtn sp-czBtn" onmousedown="ptzControl(10)" onmouseup="zoomStop()">
+ <button type="button" class="sp-fdBtn sp-czBtn" onmousedown="ptzControl(10)"
+ onmouseup="zoomStop()">
<i>锛�</i>
</button>
</div>
--
Gitblit v1.9.3