From f6abc8c724eed706487b7616bc6c816e5db5c939 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期二, 09 十二月 2025 20:13:48 +0800
Subject: [PATCH] 数量检测页面提交

---
 fzzy-igdss-web/src/main/resources/static/security/video-list.js |  204 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 204 insertions(+), 0 deletions(-)

diff --git a/fzzy-igdss-web/src/main/resources/static/security/video-list.js b/fzzy-igdss-web/src/main/resources/static/security/video-list.js
new file mode 100644
index 0000000..814971d
--- /dev/null
+++ b/fzzy-igdss-web/src/main/resources/static/security/video-list.js
@@ -0,0 +1,204 @@
+var layer;
+var timer;
+var table;
+var cameraData;
+var playUrl= null;
+
+$(function () {
+    layui.use(['layer', 'table'], function () {
+        layer = layui.layer;
+        table = layui.table;
+    });
+    
+    showPtz = function(){
+        $("#ptz-block").css("opacity",1);
+    };
+
+    disPtz = function(){
+        $("#ptz-block").css("opacity",0);
+    };
+
+    //鍒濆鍖栨覆鏌撴挱鏀惧垪琛�
+    renderList();
+});
+
+/**
+ * 鐐瑰嚮鎾斁
+ * @param cameraId
+ */
+play = function (data) {
+    layer.msg("姝e湪鑾峰彇鎾斁淇℃伅鈥︹��");
+    cameraData = null;
+    playUrl = null;
+    var data = {
+        id: data.id,
+        playType: data.playType
+    };
+    $.ajax({
+        type: 'POST',
+        url: "/security/get-media",
+        dataType: 'JSON',
+        contentType: "application/json;charset=UTF-8",
+        data: JSON.stringify(data),
+        success: function (result) {
+            if (result.code != "SUCCESS") {
+                layer.msg(result.msg);
+            } else {
+                cameraData = result;
+                playUrl = result.playUrl;
+                play2();
+            }
+        },
+        error: function (result) {
+            play2();
+        }
+    });
+};
+
+play2 = function () {
+
+    if (!cameraData) {
+        layer.alert("鏈幏鍙栧埌褰撳墠鎽勫儚澶存挱鏀句俊鎭紒锛�");
+        return;
+    }
+
+    if(PlayType.VLC == cameraData.playType){ //璇存槑浣跨敤鏈湴VLC鎾斁
+        vlcToPlay();
+    }
+
+    if (PlayType.PLAY_TYPE_WEB_RTC_DH == cameraData.playType
+    || PlayType.PLAY_TYPE_WEB_RTC_HIK == cameraData.playType) {//浣跨敤web-rtc鎾斁
+        webRtcToPlay();
+    }
+};
+
+
+function renderList() {
+    if (!listCamera || listCamera.length == 0) {
+        return;
+    }
+    var eleTable = document.getElementById("cameraList");
+    var _tr;
+    var _td;
+    listCamera.forEach(function (data) {
+        _tr = document.createElement("tr");
+        _tr.ondblclick = function () {
+            play(data);
+        };
+
+        _td = document.createElement("td");
+        _td.innerText = data.name;
+        _tr.appendChild(_td);
+
+        _td = document.createElement("td");
+        _td.innerText = data.type == "01" ? "鏋満" : "鐞冩満";
+        _tr.appendChild(_td);
+
+        _td = document.createElement("td");
+        _td.innerText = data.status == "OFF" ? "绂荤嚎" : "鍦ㄧ嚎";
+        _tr.appendChild(_td);
+
+        eleTable.appendChild(_tr);
+    });
+}
+
+
+/**
+ * 鎾斁杩樻槸鏆傚仠
+ */
+function playStop() {
+    var videL = $('#easyPlayer');
+    if (videL.paused) {
+        videL.play();
+    } else {
+        videL.pause();
+    }
+}
+/*============= vlc瑙嗛鎾斁 ----- 寮�濮� ===============*/
+function vlcToPlay() {
+    $("#video").css('display','none');
+    $("#vlcPlayer").css('display','block');
+    var html = '';
+    html += '<object type="application/x-vlc-plugin"' +
+        'events="true" width="100%" height="100%"' +
+        'pluginspage="http://www.videolan.org"' +
+        'th:codebase="@{../../static/plugins/vlc/npapi-vlc-2.2.2.tar.xz}">' +
+        '<param name="mrl" value="' + playUrl + '"/>'+
+        '<param name="volume" value="50"/>' +
+        '<param name="autoplay" value="true"/>' +
+        '<param name="loop" value="false"/>' +
+        '<param name="fullscreen" value="true"/>' +
+        '<param name="toolbar" value="false"/>' +
+        '</object>';
+    $("#vlcPlayer").html(html);
+}
+
+/*============= webRtc瑙嗛鎾斁 ----- 寮�濮� ===============*/
+
+/*============= webRtc瑙嗛鎾斁 ----- 寮�濮� ===============*/
+/**
+ * 寮�濮嬫挱鏀�
+ * @param winTag  鎾斁绐楀彛
+ * @returns {Promise<void>}
+ */
+async function webRtcToPlay() {
+    layer.msg("寮�濮嬪惎鍔ㄦ挱鏀锯�︹��");
+    $("#vlcPlayer").css('display','none');
+    $("#video").css('display','block');
+
+    if(playUrl){
+        mediaStream = new MediaStream();
+        $("#video")[0].srcObject = mediaStream;
+        webrtc = new RTCPeerConnection({
+            iceServers: [{
+                urls: ["stun:stun.l.google.com:19302"]
+            }],
+            sdpSemantics: "unified-plan"
+        });
+        webrtc.onsignalingstatechange = signalingstatechange;
+
+        webrtc.ontrack = ontrack
+        let offer = await webrtc.createOffer({
+
+            offerToReceiveAudio: true,
+            offerToReceiveVideo: true
+        });
+        await webrtc.setLocalDescription(offer);
+    }
+}
+
+function ontrack(event) {
+    mediaStream.addTrack(event.track);
+}
+
+async function signalingstatechange() {
+    switch (webrtc.signalingState) {
+        case 'have-local-offer':
+            // let uuid = $('#uuid').val();
+            let url = playUrl + "?uuid=" + cameraData.cameraId + "&channel=0";
+            $.post(url, {
+                data: btoa(webrtc.localDescription.sdp)
+            }, function (data) {
+                try {
+                    console.log(data);
+                    webrtc.setRemoteDescription(new RTCSessionDescription({
+                        type: 'answer',
+                        sdp: atob(data)
+                    }))
+                } catch (e) {
+                    console.warn(e);
+                }
+
+            });
+            break;
+        case 'stable':
+            break;
+        case 'closed':
+            break;
+        default:
+            console.log(`unhandled signalingState is ${webrtc.signalingState}`);
+            break;
+    }
+}
+/*============= 瑙嗛鎾斁 ----- 缁撴潫 ===============*/
+

--
Gitblit v1.9.3