jyyhq/witDisplay/js/video/qxVideo.js

979 lines
34 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// var dataUrl ="http://192.168.0.110:18888/rearScreen/"
// var dataUrl ="http://192.168.195.243:18888/rearScreen/"
var videoUrl = "http://192.168.0.110:18885/witDisplay/"
var clickCount = 0;
var token2 = localStorage.getItem('video_token');
var token1 = localStorage.getItem('video_token1');
//当前展示树 1移动球机2固定 球机
var openBallsNum = localStorage.getItem('openBallsNum');
var video_puid_1 = localStorage.getItem("video_puid")
//定义树节点初始数据
var zNodes1 = [];
//播放球机集合
let playBallList = [];
//窗口集合
let videoList = [];
//默认选择视频框
var selectedScreen = "video1";
//当前是几窗口模式
var numOfWindows = 1;
//全屏or窗口
let status = 1;
//平台在线的球机
var onLineBallList = [];
var imgType = 1;
var video_puid = '34020000001180000003';
var videoLoaded = true; // 在进入系统时初始化一个变量来记录视频是否加载完成默认为true
$(function () {
//接口状态数量
// interfaceStatus();
let html = "";
//加载球机树
getRoleTreeData(1,"")
// setTimeout('getRoleTreeData(1)',3500)
for (let i = 1; i <= 9; i++) {
videoList.push({
selectedScreen: "video" + i,
playState: false,
state: 0
})
html += '<canvas id="canvas_video' + i + '" style="display:none;"></canvas>'
}
$('#canvasDiv').empty().append(html);
//默认加载一个视频
ballOne();
//用于首页视频点击进入播放视频
setTimeout(function () {
if (!isEmpty(video_puid_1)){
video_puid = video_puid_1;
}
if (video_puid != "") {
let url = _cf_1.q2http_url + "stream.flv?puid=" + video_puid + "&idx=0&stream=0&token=" + token1;
//循环视频播放列表
try {
myPlayer = flvjs.createPlayer({
type: 'flv',
url: url,
isLive: true,
hasAudio: false
}, {
enableWorker: false,
autoCleanupSourceBuffer: true, //清理缓冲区
enableStashBuffer: false,
stashInitialSize: 128, // 减少首桢显示等待时长
statisticsInfoReportInterval: 600,
});
myPlayer.attachMediaElement(document.getElementById('video1'));
myPlayer.load();
setTimeout(function () {
myPlayer.play();
}, 200);
} catch (e) {
alert("该视频不在线。。。");
}
var selectedScreen = 'video1';
$('#video' + selectedScreen + '_html5_api').css("width", "100%");
$('#video' + selectedScreen + '_html5_api').css("height", "100%");
$('#video1').css("width", "85%");
$('#video1').css("height", "100%");
$('#video1').css("margin-left", "7%");
$('#video1').css("margin-top", "2%");
$('#video' + selectedScreen + '_html5_api').css("background-color", "black");
$('.vjs-text-track-display').hide();
$('.vjs-loading-spinner').hide();
$('.vjs-big-play-button').hide();
$('.vjs-control-bar').hide();
$('.vjs-error-display').hide();
$('.vjs-error-display').hide();
$('.vjs-modal-dialog').hide();
$('.vjs-poster').removeAttr("class");
$('.video' + selectedScreen + '-dimensions').css("width", "100%");
$('.video' + selectedScreen + '-dimensions').css("height", "100%");
}
playBallList.push({
puid: video_puid,
selectedScreen: 'video1',
window: 1,
start: true,
type: '1',
myPlayer: myPlayer,
token : token1,
pathType: 2
});
video_puid = '';
}, 1500);
// $("#imgBtn").click(function () {
// if (imgType === 1) {
// imgType = 2;
// $("#video-left").css("display", "none")
// $("#video-center").css("width", "98%")
// $("#imgBtn").attr("src", "right_triangle.png")
// } else {
// imgType = 1;
// $("#video-center").css("width", "75%")
// setTimeout(function () {
// $("#video-left").css("display", "")
// }, 2000)
// $("#imgBtn").attr("src", "left_triangle.png")
// }
// })
});
// 使用Layui的日期时间范围选择器组件
layui.use('laydate', function(){
var laydate = layui.laydate;
// 初始化起始时间选择器
laydate.render({
elem: '#start-time',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss',
min: dayOffset(-11) + ' 00:00:00', // 设置最小可选日期
max: getCurrentDateTime(), // 设置最大可选日期
theme: 'grid',
done: function(value, date){
// 获取起始时间选择器的值
var startTime = new Date(value).getTime();
var endTime = new Date($('#end-time').val()).getTime();
// 如果结束时间早于起始时间,则自动修正为与起始时间相同
if (endTime < startTime){
$('#end-time').val(value);
}
}
});
// 初始化结束时间选择器
laydate.render({
elem: '#end-time',
type: 'datetime',
format: 'yyyy-MM-dd HH:mm:ss',
min: dayOffset(-11) + ' 00:00:00', // 设置最小可选日期
max: getCurrentDateTime(), // 设置最大可选日期
theme: 'grid',
done: function(value, date){
// 获取结束时间选择器的值
var startTime = new Date($('#start-time').val()).getTime();
var endTime = new Date(value).getTime();
// 如果结束时间早于起始时间,则自动修正为与起始时间相同
if (endTime < startTime){
$('#end-time').val($('#start-time').val());
}
}
});
});
// 获取当前日期时间字符串
function getCurrentDateTime(){
var now = new Date();
var year = now.getFullYear();
var month = padZero(now.getMonth() + 1);
var day = padZero(now.getDate());
var hours = padZero(now.getHours());
var minutes = padZero(now.getMinutes());
var seconds = padZero(now.getSeconds());
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
}
// 获取相对于当前日期的偏移量的日期字符串
function dayOffset(offset){
var now = new Date();
now.setDate(now.getDate() + offset);
var year = now.getFullYear();
var month = padZero(now.getMonth() + 1);
var day = padZero(now.getDate());
return year + '-' + month + '-' + day + ' 00:00:00';
}
// 数字补零函数
function padZero(num){
return num < 10 ? '0' + num : num;
}
$("#imgSearch").click(function () {
getRoleTreeData(1,$("#keyWord").val())
})
/**
* 监控视频-接口状态数量
*/
function interfaceStatus() {
$.ajax({
type: 'POST',
url: dataUrl + 'electricity/interfaceStatus',
data: "type=4",
dataType: 'json',
success: function(res) {
let interface = res.obj.electricityBean;
// document.getElementById('requestNum').innerText = parseInt(interface.requestNum);
// document.getElementById('successNum').innerText = parseInt(interface.successNum);
// document.getElementById('errorNum').innerText = parseInt(interface.errorNum);
document.getElementById('requestNum').innerText = 15;
document.getElementById('successNum').innerText = 15;
document.getElementById('errorNum').innerText = 0;
}
});
}
/**
* 球机树搜索---回车调用搜索方法
* @param event
*/
function handleKeyDown(event) {
if (event.keyCode === 13) {
event.preventDefault(); // 阻止默认的回车行为
// 在这里执行您想要的操作
getRoleTreeData(1,$("#keyWord").val())
}
}
//改变球机树 固定视频or移动视频
function changeView(num) {
localStorage.setItem('openBallsNum', num);
openBalls();
}
//改变选择样式
function openBalls() {
var nowNum = localStorage.getItem('openBallsNum');
if (nowNum == null || nowNum == "null") {
nowNum = '1';
}
console.log("nowNum===" + nowNum)
if (nowNum == 1) {
$("#null1").css("border-bottom", "4px solid transparent");
$("#null2").css("border-bottom", "4px solid #04A087");
getRoleTreeData(nowNum); //移动球机
} else if (nowNum == 2) {
$("#null1").css("border-bottom", "4px solid #04A087");
$("#null2").css("border-bottom", "4px solid transparent");
getRoleTreeData(nowNum); //移动球机
}
}
//树的设置
var setting1 = {
// 不显示引导线
view: {
selectedMulti: false,
// showIcon:false
},
data: {
simpleData: {
enable: true
}
},
edit: {
enable: false,
},
callback: {
onClick: onTreeClick,
// 点击前
beforeClick: beforeClick,
// 不允许拖拽
beforeDrag: beforeDrag,
// beforeExpand: zTreeBeforeExpand //节点展开前的事件
}
};
function beforeClick(treeId, treeNode) {
if (treeNode.id == 0) {
return false;
}
return true;
}
//不允许拖拽
function beforeDrag(treeId, treeNodes) {
return false;
}
//获取数据初始化树
function getRoleTreeData(ballType,keyWord) {
console.log("ballType===" + ballType);
$.ajax({
type: 'post',
url: dataUrl + 'video/getBallTreeData',
data: {
keyWord : keyWord
},
dataType: 'json',
success: function (result) {
var obj = result.obj;
if (obj == null && obj.length == 0) {
layer.alert("暂无球机信息");
} else {
var data = parseTreeData(obj);
var nodes = zNodes1.concat(data);
$.fn.zTree.init($("#resourceTree"), setting1, nodes);
}
},
error: function (e) {
console.log(e.resMsg);
},
});
}
/**
* 解析返回的树数据及其结构
* @param {Object} data
* @param {Object} allNum
*/
function parseTreeData(data) {
var allNum = 0;
var onlineNum = 0;
var noLineNum = 0;
for (var i = 0; i < data.length; i++) {
var nodeType = data[i].type;
if (nodeType == 1) {
data[i].icon = "../../img/video/jingyanyuan.png";
} else if (nodeType == 2) {
data[i].icon = "../../img/video/dong.png";
} else if (nodeType == 3) {
data[i].icon = "../../img/video/ceng.png";
} else if (nodeType == 4) {
allNum++;
data[i].icon = "../../img/video/notOnline.png";
if (data[i].onLine === '1') {
onlineNum++;
data[i].icon = "../../img/video/online.png";
data[i].ballStatus = "1";
continue;
}
}
}
$("#equipmentNmb").html(allNum);
$("#onlineNmb").html(onlineNum);
$("#OfflineNmb").html(allNum - onlineNum);
return data;
}
function dataClick() {
var element1 = document.getElementById("details1");
var element3 = document.getElementById("details3");
var videoWindow = document.getElementById("videoWindow");
var audioPlayer = document.getElementById("audioPlayer");
var centerNumCenter = document.getElementById("center_num_center");
var icon = document.getElementById("icon");
let treeDiv = document.getElementById("treeDiv");
var videoSwitch = document.getElementById("videoSwitch");
if (element1.style.display === "none") { // 如果第一个元素是隐藏状态audioPlayer
videoWindow.style.display = "block"; // 切换为显示状态
element1.style.display = "block"; // 切换为显示状态
centerNumCenter.style.display = "block"; // 切换为显示状态
element3.style.display = "none"; // 否则切换为隐藏状态
audioPlayer.style.display = "none"; // 否则切换为隐藏状态
icon.style.display = "none"; // 否则切换为隐藏状态
treeDiv.style.height = "380px";
videoSwitch.innerHTML = "视频监控";
} else {
videoWindow.style.display = "none"; // 否则切换为隐藏状态
element1.style.display = "none"; // 否则切换为隐藏状态
centerNumCenter.style.display = "none"; // 否则切换为隐藏状态
element3.style.display = "block"; // 切换为显示状态
audioPlayer.style.display = "block"; // 切换为显示状态
icon.style.display = "block"; // 切换为显示状态
treeDiv.style.height = "553px";
videoSwitch.innerHTML = "历史视频";
}
if (clickCount === 0) {
clickCount = 1;
stopVideo(null, null, 2);
} else if (clickCount === 1) {
clickCount = 0;
}
}
//播放历史视频
// function loadVideo(url) {
// // 创建一个 XMLHttpRequest 对象
// var xhr = new XMLHttpRequest();
//
// // 发送 HEAD 请求,获取视频文件的状态码
// xhr.open('HEAD', url, true);
// xhr.onreadystatechange = function() {
// if (xhr.readyState === 4) {
// if (xhr.status === 200) {
// var audioPlayer = document.getElementById('audioPlayer');
// audioPlayer.src = url;
//
// } else if (xhr.status === 404) {
// console.log('视频文件不存在,继续加载...');
// layer.msg('视频加载中', {icon: 15});
// setTimeout(function() {
// loadVideo(url); // 递归调用自身再次发送请求
// }, 3000); // 设置延迟时间(单位:毫秒),可以根据实际情况调整
// } else {
// // 其他状态码,处理错误情况
// console.error("请求视频文件失败");
// }
// }
// };
// xhr.send();
// }
function loadVideo(url) {
// 创建一个 XMLHttpRequest 对象
var xhr = new XMLHttpRequest();
// 发送 HEAD 请求,获取视频文件的状态码
xhr.open('HEAD', url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
setTimeout(function() {
const iframe = document.getElementById('audioPlayer');
iframe.setAttribute('src', url);
videoLoaded = true;
const el = document.querySelector('.layui-icon-refresh-3');
if (el) {
el.addEventListener('click', function() {
const iframe = document.getElementById('audioPlayer');
iframe.setAttribute('src', url);
videoLoaded = true;
});
}
}, 5000);
} else if (xhr.status === 404) {
console.log('视频文件不存在,继续加载...');
layer.msg('视频加载中', {icon: 10});
setTimeout(function() {
loadVideo(url); // 递归调用自身再次发送请求
}, 5000); // 设置延迟时间(单位:毫秒),可以根据实际情况调整
} else {
// 其他状态码,处理错误情况
console.error("请求视频文件失败");
}
}
};
xhr.send();
}
function playHistoricalVideo(startTime, endTime, videoType, channelId) {
console.log('开始时间:', startTime + '结束时间:', endTime + '视频类型:', videoType + '通道号:', channelId);
$.ajax({
type: 'POST',
url: dataUrl + 'video/playback',
data: {
startTime: startTime,
endTime: endTime,
channelId: channelId,
videoType: videoType
},
dataType: 'json',
success: function(res) {
let url = videoUrl + res.obj;
console.log("url:"+ url);
const iframe = document.getElementById('audioPlayer');
iframe.src = '';
//获取请求状态
getReadyState(startTime, endTime, videoType, channelId, url);
// loadVideo(url); // 调用加载视频的函数
}
});
}
function getReadyState( startTime, endTime, videoType, channelId, url) {
// 使用split方法将路径以斜杠为分隔符拆分成数组
const segments = url.split('/');
// 获取数组中最后一个非空元素,即最后一个斜杠之后的内容
const videoName = segments.filter(segment => segment !== '').pop();
console.log(videoName);
$.ajax({
type: 'POST',
url: dataUrl + 'video/getDownloadStatus',
data: {
videoName: videoName
},
dataType: 'json',
success: function(res) {
if (res.obj === 17) {
layer.msg('视频获取失败请稍等,正在重新获取...', {icon: 10});
playHistoricalVideo(startTime, endTime, videoType, channelId); // 下载失败回调重新获取视频地址
}else {
loadVideo(url); // 调用加载视频的函数
}
}
});
}
//获取树点击事件 执行播放视频
function onTreeClick(event, treeId, treeNode, clickFlag) {
console.log(clickCount)
if (clickCount === 0) {
if(playBallList.length > 0){
if (playBallList[0].puid === "34020000001180000003"){
playBallList[0].myPlayer.pause();
playBallList[0].myPlayer.unload();
playBallList[0].myPlayer.detachMediaElement();
playBallList[0].myPlayer.destroy();
playBallList[0].myPlayer = null;
playBallList = [];
}
}
let state = true;
var ballFrom = treeNode.onLine;
console.log("ballFrom=" + ballFrom);
var puid = treeNode.puid;
if (puid == '' || puid == "null") {
layer.alert("puid为空请联系运维人员核对");
return;
}
let ballStatus = treeNode.onLine;
console.log("puid=" + puid);
var name = treeNode.name;
var ballIndex = treeNode.ballIndex;
console.log("onTreeClick name=" + name);
console.log("onTreeClick ballIndex=" + ballIndex);
if (ballIndex == null) {
ballIndex = '0';
}
if (ballStatus != 1) {
alert("请选择在线视频观看");
return;
}
if (!isEmpty(puid)) {
//if (onLine === "1") {
if (true) {
//去除空播对象
remove();
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (puid === item.puid) {
//notify("此球机正在播放,请勿重复播放", "warning", "");
ballScreen(item.selectedScreen.replace("video", ""));
state = false;
}
}
});
if (state) {
$.each(videoList, function (index, item) {
if (selectedScreen === item.selectedScreen) {
if (!item.playState) {
state = false;
}
}
});
//寻找没有播放视频的窗口
if (state && playBallList.length > 0) {
$.each(videoList, function (index, item) {
if (!item.playState) {
if (index < numOfWindows) {
selectedScreen = item.selectedScreen;
return false;
}
}
});
}
//视频替换
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.start && item.myPlayer !== null) {
item.token = '';
item.myPlayer.pause();
item.myPlayer.unload();
item.myPlayer.detachMediaElement();
item.myPlayer.destroy();
item.myPlayer = null;
playBallList.splice(index, 1);
}
}
}
});
playBallList.push({
puid: puid,
selectedScreen: selectedScreen,
window: 1,
start: false,
type: ballFrom,
myPlayer: null,
token : '',
pathType: 2
});
$.each(videoList, function (index, item) {
if (selectedScreen === item.selectedScreen) {
item.playState = true;
}
});
//播放视频
qxPlayVideo(puid, ballIndex);
}
} else {
notify("请选择开机的球机", "warning", "");
}
}
}else if (clickCount === 1){
layui.use('layer', function(){
var layer = layui.layer;
var startTime = document.getElementById('start-time').value;
var endTime = document.getElementById('end-time').value;
let videoType = treeNode.videoType;
let channelId = treeNode.channelId;
if (startTime === '' || endTime === '') {
layer.msg('时间不能为空', {icon: 10});
} else {
// 计算起始时间和结束时间的间隔(单位:毫秒)
var timeDiff = new Date(endTime).getTime() - new Date(startTime).getTime();
// 判断视频时长是否超过两小时7200000毫秒
if (timeDiff > 7200000) {
layer.msg('视频不能超过两小时', {icon: 6});
} else {
if (videoLoaded) {
videoLoaded = false;
playHistoricalVideo(startTime, endTime, videoType, channelId);
}else {
// 弹出提示框询问用户是否确定关闭当前视频
layer.confirm('当前视频正在加载,是否确定关闭?', {icon: 3, title:'提示'}, function(index){
playHistoricalVideo(startTime, endTime, videoType, channelId);
layer.close(index); // 关闭提示框
}, function(index){
// 用户点击取消,则关闭当前操作,不发送新的请求
layer.close(index); // 关闭提示框
});
}
}
}
});
}
}
//防止重复播放,与去掉空播对象
function remove() {
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (item.window === null) {
playBallList.splice(index, 1);
}
}
});
}
/**
* 播放视频
* @param puId
* @param idx
*/
function qxPlayVideo(puId, idx) {
setTimeout(function () {
readyPlay(puId, idx);
}, 500);
}
//开始播放视频
function readyPlay(puId, idx) {
//若是清晰平台,删除连接对象
// mySet.delete(selectedScreen);
var tk = token1;
var pathType = 2;
let url = _cf_1.q2http_url + "stream.flv?puid=" + puId + "&idx=" + idx + "&stream=0&token=" + token1;
if (playBallList.length > 5) {
url = _cf.q2http_url + "stream.flv?puid=" + puId + "&idx=" + idx + "&stream=0&token=" + token2;
tk = token2;
pathType = 1;
console.log("tk=============="+tk)
}
console.log("playBallList1111=" + JSON.stringify(playBallList));
//循环视频播放列表
var isPlay = null;
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.window !== null) {
var playObj = item.myPlayer
isPlay = item.start;
try {
var myPlayer = flvjs.createPlayer({
type: 'flv',
url: url,
isLive: true,
hasAudio: false
}, {
enableWorker: false,
autoCleanupSourceBuffer: true, //清理缓冲区
enableStashBuffer: false,
stashInitialSize: 128, // 减少首桢显示等待时长
statisticsInfoReportInterval: 600,
// fixAudioTimestampGap : false
});
myPlayer.attachMediaElement(document.getElementById(item.selectedScreen));
myPlayer.load();
setTimeout(function () {
myPlayer.play();
}, 200);
item.myPlayer = myPlayer;
item.start = true;
item.token = tk;
item.pathType = pathType;
console.log("playBallList222=" + JSON.stringify(playBallList));
console.log("item.token==========" + item.token);
} catch (e) {
alert("该视频不在线。。。");
}
}
}
}
});
$('#video' + selectedScreen + '_html5_api').css("width", "100%");
$('#video' + selectedScreen + '_html5_api').css("height", "100%");
$('#video' + selectedScreen).css("width", "100%");
$('#video' + selectedScreen).css("height", "100%");
$('#video' + selectedScreen + '_html5_api').css("background-color", "black");
$('.vjs-text-track-display').hide();
$('.vjs-loading-spinner').hide();
$('.vjs-big-play-button').hide();
$('.vjs-control-bar').hide();
$('.vjs-error-display').hide();
$('.vjs-error-display').hide();
$('.vjs-modal-dialog').hide();
$('.vjs-poster').removeAttr("class");
$('.video' + selectedScreen + '-dimensions').css("width", "100%");
$('.video' + selectedScreen + '-dimensions').css("height", "100%");
}
/**
* @param {*} player 播放控件对象
* @param {*} index playBallList 下标,第几个
* @param {*} type 类型 1切换窗口关闭视频2主动关闭视频
*/
function stopVideo(player, index, type) {
if (type == 1) {
player.unload();
player.detachMediaElement();
player.destroy();
player = null;
videoList.splice(index, 1);
for (let i = 0; i < videoList.length; i++) {
if (selectedScreen === videoList[i].selectedScreen) {
videoList[i].playState = false;
}
}
} else {
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
let start = item.start;
let player = item.myPlayer;
item.token = '';
if (start && player !== null) {
player.pause();
player.unload();
player.detachMediaElement();
player.destroy();
player = null;
playBallList.splice(index, 1);
}
}
}
});
for (let i = 0; i < videoList.length; i++) {
if (selectedScreen === videoList[i].selectedScreen) {
videoList[i].playState = false;
}
}
}
}
//1个视频
function ballOne() {
setBallNumBtnStyle(1);
numOfWindows = 1;
document.getElementById("ball1").style.cssText = "width: 97%;height: 98.6%;float:left";
document.getElementById("video1").style.cssText = "width: 100%;height: 100%;";
$('.video1-dimensions').css("width", "100%");
$('.video1-dimensions').css("height", "100%");
// $.each(playBallList, function (index, item) {
// if (!isEmpty(item)) {
// if (item.selectedScreen !== "video1") {
// let start = item.start;
// let player = item.myPlayer;
// if(start && player != null){
// stopVideo(player,index,1);
// }
// }
// }
// });
for (var i = 2; i <= 9; i++) {
document.getElementById("ball" + i).style.display = "none";
}
for (let i = 2; i <= 9; i++) {
videoList[i - 1].playState = false;
}
}
//4个视频
function ballFour() {
setBallNumBtnStyle(4);
numOfWindows = 4;
// $.each(playBallList, function (index, item) {
// if (!isEmpty(item)) {
// if (item.selectedScreen.replace("video","") > 4 ) {
// let start = item.start;
// let player = item.myPlayer;
// if(start && player != null){
// stopVideo(player,index,1);
// }
// }
// }
// });
for (var i = 1; i < 5; i++) {
document.getElementById("ball" + i).style.cssText = "width: 48.5%;height: 48.8%;float:left";
document.getElementById("video" + i).style.cssText = "width: 100%;height: 100%;";
$('.video' + i + '-dimensions').css("width", "100%");
$('.video' + i + '-dimensions').css("height", "100%");
}
for (var i = 5; i <= 9; i++) {
document.getElementById("ball" + i).style.display = "none";
}
for (let i = 5; i <= 9; i++) {
videoList[i - 1].playState = false;
}
}
//9个视频
function ballNine() {
setBallNumBtnStyle(9);
numOfWindows = 9;
for (var i = 1; i <= 9; i++) {
document.getElementById("ball" + i).style.cssText = "width: 32.2%;height: 32%;float:left";
document.getElementById("video" + i).style.cssText = "width: 100%;height: 100%;";
$('.video' + i + '-dimensions').css("width", "100%");
$('.video' + i + '-dimensions').css("height", "100%");
}
}
//设置球机上方数字样式
function setBallNumBtnStyle(type) {
var a = [1, 4, 9];
for (var i = 0; i < a.length; i++) {
if (a[i] == type) {
document.getElementById('ballBtn' + type).style.background = '#17CBAE';
} else {
document.getElementById('ballBtn' + a[i]).style.background = 'transparent';
}
}
}
//单机球机页面点击
var timer = null; //定义一个变量存放定时器
function singleClick(t) {//
if (timer) { //取消上次延时未执行的方法
window.clearTimeout(timer);
timer = null;
}
timer = window.setTimeout(function () {
ballScreen(t);
}, 300);
}
//添加单机视频框样式
function ballScreen(t) {
$.each($('.ballsplit'), function (index, item) {
$($('.ballsplit')[index]).removeClass("selectedContent")
});
selectedScreen = "video" + t;
$("#ball" + t).addClass("selectedContent");
let result = playBallList.some((item => {
if (item.selectedScreen === "video" + t) {
console.log("item.puid===========" + item.puid);
console.log("item.state===========" + item.start);
return true;
}
}))
}
//双击球机页面
function doubleClick(t) {
if (timer) { //取消上次延时未执行的方法
window.clearTimeout(timer);
}
var div = document.getElementById("ball" + t);
if (status == 1) { //全屏
$("#video" + t).css("width", "100%");
$("#video" + t).css("height", "100%");
if (div.requestFullscreen) {
div.requestFullscreen();
} else if (div.msRequestFullscreen) {
div = document.body;
div.msRequestFullscreen();
} else if (div.mozRequestFullScreen) {
div.mozRequestFullScreen();
} else if (div.webkitRequestFullScreen) {
div.webkitRequestFullScreen();
}
status = 2;
} else if (status == 2) { //关闭全屏
if (numOfWindows == 1) {
$("#" + t).css("width", "97%");
$("#" + t).css("height", "98.6%");
$("#" + t).css("float", "left");
} else if (numOfWindows == 4) {
$("#" + t).css("width", "48.5%");
$("#" + t).css("height", "48.8%");
$("#" + t).css("float", "left");
} else {
$("#" + t).css("width", "32.2%");
$("#" + t).css("height", "32%");
$("#" + t).css("float", "left");
}
if (document.exitFullscreen) {
document.exitFullscreen();
} else if (document.msExitFullscreen) {
document.msExitFullscreen();
} else if (document.mozCancelFullScreen) {
document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
document.webkitCancelFullScreen();
}
status = 1;
}
}
//判空
function isEmpty(str) {
if (str == undefined || str == null || str == "null" || str == "") {
return true;
} else {
return false;
}
}