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