var layer; var timer; var table; var cameraData; $(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("正在获取播放信息……"); var data = { id: data.id, playType: data.playType }; $.ajax({ type: 'POST', url: "../../basic/security/get-media", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { play2(result); }, error: function (result) { play2(result); } }); }; play2 = function (data) { if (!data) { layer.alert("未获取到当前摄像头播放信息!!"); return; } cameraData = data; if(PlayType.VLC == data.playType){ //说明使用本地VLC播放 $("#easyPlayer").css('display','none'); $("#iframePlayer").css('display','none'); $("#vlcPlayer").css('display','block'); var html = ''; html += '' + ''+ '' + '' + '' + '' + '' + ''; $("#vlcPlayer").html(html); }else if (data.playIframe) {//说明使用IFRAME播放 layer.msg("开始启动播放……"); $("#easyPlayer").css('display','none'); $("#vlcPlayer").css('display','none'); $("#iframePlayer").css('display','block'); $("#iframePlayer").attr("src", data.playIframe); } else if(data.playAddr){ layer.msg("开始启动播放……"); //播放视频 $("#iframePlayer").css('display','none'); $("#vlcPlayer").css('display','none'); $("#easyPlayer").css('display','block'); $('#easyPlayer').attr('video-title', data.name); $('#easyPlayer').attr('video-url', data.playAddr); //定时器-保活直播 if (timer) clearInterval(timer); timer = setInterval(function () { keepAlive(); }, 15 * 1000); } else { layer.alert("未获取到当前摄像头播放信息!!"); } }; 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); }); } //--------------------------视频管理------------------------// /** * 保活,msg参数为了防止浏览器缓存 */ function keepAlive() { var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, msg: Math.random() }; $.ajax({ type: 'POST', url: "../../basic/security/keep-alive", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { }, error: function (result) { } }); } /** * 播放还是暂停 */ function playStop() { var videL = $('#easyPlayer'); if (videL.paused) { videL.play(); } else { videL.pause(); } } /** * 云台控制 -转向控制 * @param tag 执行命令 1=上,2=下,3=左,4=右,5=左上,6=左下,7=右上,8=右下,0=停止,9=变倍小,10 = 变倍加 * */ function mouseDownPTZControl(tag) { if ("01" == cameraData.type) { layer.msg("枪机摄像头不支持云台控制!"); return; } layer.msg("开始调用云平台……", {time: 3000, shift: 5, offset: "rb"}, function () { }); var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, command: tag }; $.ajax({ type: 'POST', url: "../../basic/security/ptz-media", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { if ("ERROR" == result.code) { layer.alert(result.msg); } else { layer.msg("执行成功……", {time: 3000, shift: 5, offset: "rb"}, function () { }); } }, error: function (result) { layer.alert(result.msg); } }); } /** * 云台控制 -转向停止 * @param tag */ function mouseUpPTZControl() { if ("01" == cameraData.type) { return; } var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, command: "0" }; $.ajax({ type: 'POST', url: "../../basic/security/ptz-media", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { if ("ERROR" == result.code) { layer.alert(result.msg); } }, error: function (result) { layer.alert(result.msg); } }); } /** * 云台控制 -预置位置调用 */ function clickGoPreset() { layer.msg("开始调用云平台……", {time: 3000, shift: 5, offset: "rb"}, function () { }); var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, command: "2", preset: 1 }; $.ajax({ type: 'POST', url: "../../basic/security/ptz-preset", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { if ("ERROR" == result.code) { layer.alert(result.msg); } else { layer.msg("执行成功……", {time: 3000, shift: 5, offset: "rb"}, function () { }); } }, error: function (result) { layer.alert(result.msg); } }); } /** * PTZZoomout 变倍 + * @constructor */ function PTZZoomout() { // if ("01" == cameraData.type) { // layer.msg("枪机摄像头不支持云台控制!"); // return; // } layer.msg("开始调用云平台……", {time: 3000, shift: 5, offset: "rb"}, function () { }); var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, command: "10" }; $.ajax({ type: 'POST', url: "../../basic/security/ptz-media", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { if ("ERROR" == result.code) { layer.alert(result.msg); } else { layer.msg("执行成功……", {time: 3000, shift: 5, offset: "rb"}, function () { }); } }, error: function (result) { layer.alert(result.msg); } }); } /** * PTZZoomout 变倍 - * @constructor */ function PTZZoomIn() { // if ("01" == cameraData.type) { // layer.msg("枪机摄像头不支持云台控制!"); // return; // } layer.msg("开始调用云平台……", {time: 3000, shift: 5, offset: "rb"}, function () { }); var data = { playType: cameraData.playType, sn: cameraData.sn, ip: cameraData.ipIn, command: "9" }; $.ajax({ type: 'POST', url: "../../basic/security/ptz-media", dataType: 'JSON', contentType: "application/json;charset=UTF-8", data: JSON.stringify(data), success: function (result) { if ("ERROR" == result.code) { layer.alert(result.msg); } else { layer.msg("执行成功……", {time: 3000, shift: 5, offset: "rb"}, function () { }); } }, error: function (result) { layer.alert(result.msg); } }); } /** * PTZZoomout 变倍停止 * @constructor */ function PTZZoomStop() { }