var layer; var splitWin = 1; //分屏数,默认1分屏 var windowsNum = null; //播放窗口下标,手动选择模式下使用 var timer; var table; var curCamera = null; var playCamera = null; var playList = {}; var playTag = 1; //默认内网播放 var playUrl1 = null; var videoId1 = null; let webrtc1; let mediaStream1; var playUrl2 = null; var videoId2 = null; let webrtc2; let mediaStream2; var playUrl3 = null; var videoId3 = null; let webrtc3; let mediaStream3; var playUrl4 = null; var videoId4 = null; let webrtc4; let mediaStream4; var playUrl5 = null; var videoId5 = null; let webrtc5; let mediaStream5; var playUrl6 = null; var videoId6 = null; let webrtc6; let mediaStream6; var playUrl7 = null; var videoId7 = null; let webrtc7; let mediaStream7; var playUrl8 = null; var videoId8 = null; let webrtc8; let mediaStream8; var playUrl9 = null; var videoId9 = null; let webrtc9; let mediaStream9; $(function () { layui.use(['layer', 'table'], function () { layer = layui.layer; table = layui.table; }); //初始化渲染播放列表 renderList(); }); /** * 渲染监控列表 */ function renderList() { if (!listCamera || listCamera.length == 0) { return; } var eleTable = document.getElementById("cameraList"); var _tr; var _td; $.each(listCamera, function (index, item) { _tr = document.createElement("tr"); _tr.ondblclick = function () { getMedia(index); }; _td = document.createElement("td"); _td.innerText = item.name; _tr.appendChild(_td); _td = document.createElement("td"); _td.innerText = item.type == "01" ? "枪机" : "球机"; _tr.appendChild(_td); _td = document.createElement("td"); _td.innerText = item.status == "OFF" ? "离线" : "在线"; _tr.appendChild(_td); eleTable.appendChild(_tr); }) } /** * 点击获取播放信息 * @param index */ function getMedia(index) { if(windowsNum == null){ windowsNum = 1; } playCamera = null; var camera = listCamera[index]; playList[windowsNum] = camera; var data = { id: camera.id, playType: camera.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 { playCamera = result; startPlay(); } }, error: function (result) { layer.msg(result.msg); startPlay(); } }); }; /** * 播放窗口选中 * @param win1 分屏数 * @param win2 选中窗口数 */ function selectWin(win1, win2) { if (windowsNum) { removeSelectCss(); } splitWin = win1; windowsNum = win2; addSelectCss(); curCamera = playList[windowsNum]; } /** * 去除选中CSS */ function removeSelectCss() { const target = document.getElementById("f" + splitWin + "_d" + windowsNum); target.classList.remove('active'); } /** * 增加选中CSS */ function addSelectCss() { const target = document.getElementById("f" + splitWin + "_d" + windowsNum); target.classList.add('active'); } /** * 分屏切换 * @param tagNum 分屏数 */ function fenping(tagNum) { if (windowsNum) { removeSelectCss(); } playList = {}; //重置切换前的分屏窗口 reloadView(splitWin); //赋值当前分屏数 splitWin = tagNum; //重置切换后的分屏窗口 reloadView(splitWin); //切换分屏图标及页面 if (tagNum === 1) { $("#f_1").attr("src", "/img/web/group/fp_1_active.png"); $("#f_4").attr("src", "/img/web/group/fp_4.png"); $("#f_9").attr("src", "/img/web/group/fp_9.png"); $("#video_1").css('display', 'grid'); $("#video_4").css('display', 'none'); $("#video_9").css('display', 'none'); } if (tagNum === 4) { $("#f_1").attr("src", "/img/web/group/fp_1.png"); $("#f_4").attr("src", "/img/web/group/fp_4_active.png"); $("#f_9").attr("src", "/img/web/group/fp_9.png"); $("#video_1").css('display', 'none'); $("#video_4").css('display', 'grid'); $("#video_9").css('display', 'none'); } if (tagNum === 9) { $("#f_1").attr("src", "/img/web/group/fp_1.png"); $("#f_4").attr("src", "/img/web/group/fp_4.png"); $("#f_9").attr("src", "/img/web/group/fp_9_active.png"); $("#video_1").css('display', 'none'); $("#video_4").css('display', 'none'); $("#video_9").css('display', 'grid'); } windowsNum = null; } /** * 重置分屏前的窗口 * @param num */ function reloadView(num) { var html; for (var i = 1; i <= num; i++) { html = ''; html += ''; $("#f" + num + "_d" + i).html(html); } } /** * 判断内网播放还是外网播放 */ function startPlay() { startPlay1(); } /** * 外网播放 */ function startPlay1() { if(windowsNum > splitWin){ windowsNum = 1; } if (!playCamera) { $("#f" + splitWin + "_d" + windowsNum).html("未获取到摄像头播放信息!!"); } if (playCamera.playUrl) { var divId = "#f" + splitWin + "_d" + windowsNum; var html = '