jyyhq/witDisplay/js/video/connection2.js

494 lines
14 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 token1 = null;
var storageId2 = "";
var startTime2 ="";
var endTime2 = "";
var storageType2 = 0;//初始值1为表示可录像点击后变为2表示可下载
var storageVideoScreen2=0;
$(function(){
connect2();
});
function getPhoto2(){
console.log("getPhoto selectedScreen="+selectedScreen);
var canvas = document.getElementById("huaImg");
var video = document.getElementById(selectedScreen);
let ctx = canvas.getContext('2d');
canvas.width = 1080;
canvas.height = 720;
ctx.drawImage(video, 0, 0, 1080, 720); // 将video中的数据绘制到canvas里
saveImage2(canvas, new Date().getTime() + '.png'); // 存储图片到本地
}
function saveImage2(canvas, filename) {
let image = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream');
saveAs2(image, filename || new Date().getTime() + '.png');
}
function storageVideo2(){
console.log("storageType2=="+storageType2);
if(storageVideoScreen2 == 0){
storageVideoScreen2 = selectedScreen;
}else{
console.log("storageVideoScreen2=="+storageVideoScreen2);
console.log("selectedScreen=="+selectedScreen);
if(storageVideoScreen2 != selectedScreen){
layer.alert("开始录制和结束录制请确保是同一个视频!!!");
return;
}
}
var num = parseInt(storageType2);
if(num ==0){
$("#videotape").css("background-image","url('../../img/video/videoRecord.png')");
startstorage2();
}else{
$("#videotape").css("background-image","url('../../img/video/videoRecord.png')");
stopmanual2(storageId2);
storageVideoScreen2 =0;
}
storageType2++;
console.log("num=="+num);
}
function stopmanual2(id) {
layer.msg('结束录像,正在准备下载,请稍后。。。');
let pId = null;
let idex = 0;
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.start && item.myPlayer !== null) {
pId = item.puid;
}
}
}
});
endTime2 = Date.parse(new Date())/1000+10;
console.log("endTime2="+endTime2);
console.log("storageId2="+id);
requestPost2('CSS/C_CSS_StopManualStorage?token=' + token1, {
id: id
}, rv => {
getQxVideoList2();
});
}
function getQxVideoList2(){
let pId = null;
let idex = 0;
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.start && item.myPlayer !== null) {
pId = item.puid;
}
}
}
});
var startTime2 = getTodaystartTime2()+"";
var endTime2 = getTodayendTime2()+"";
requestGetWithParam2('CSS/C_CSS_QueryStorageFiles?token=' + token1, {
idx: 0,
puid:pId,
begin:startTime2,
end:endTime2,
offset:'0',
count:'200'
}, rv => {
var resultJson = JSON.parse(rv.responseText);
if(resultJson == "{}" || rv.responseText == "{}"){
layer.alert("暂无云视频!");
return;
}
var files = resultJson.File;
var filesLength = files.length;
var sTime = '';
var eTime = '';
console.log("files="+JSON.stringify(files));
var isArray = Array.isArray(files)
if(isArray){
for(var i=0;i<files.length;i++){
if(i==(files.length-1)){
var fi = files[i];
sTime = fi.Begin;
eTime = fi.End;
}
}
console.log("sTime111="+sTime);
console.log("eTime111="+eTime);
}else{
sTime = files.Begin;
eTime = files.End;
console.log("sTime222="+sTime);
console.log("eTime222="+eTime);
}
mp4Transcode2(pId,sTime,eTime);
console.log("files="+files);
});
}
function mp4Transcode2(pId,sTime,eTime){
requestPost('CSS/transcode?token=' + token1, {
idx: 0,
puid:pId,
beginUTCSecond:sTime,
endUTCSecond:eTime,
retentionMinutes:5
}, rv => {
var resultJson = JSON.parse(rv.responseText);
var transcodeId = resultJson.transcodeId;
var timer1=setTimeout(function(){
mp4TranscodeProgress2(transcodeId,timer1);
},5000);
});
};
function mp4TranscodeProgress2(transcodeId,timer1){
requestGetWithParam2('CSS/transcodeProgress?token=' + token1, {
transcodeId: transcodeId
}, rv => {
var resultJson = JSON.parse(rv.responseText);
var ErrorCode = resultJson.ErrorCode;
var msg = resultJson.msg;
var reMsg = "transcode "+transcodeId+" done";
if(msg==reMsg && ErrorCode==0){
clearInterval2(timer1);
location.href="http://112.31.70.193:1854/icvs/CSS/downloadTranscodeFile?token="+token1+"&transcodeId="+transcodeId
//location.href=_cf.q2http_url+"icvs/CSS/downloadTranscodeFile?token1="+token1+"&transcodeId="+transcodeId
}
});
}
function getTodaystartTime2(){
var startTime2 = toDayExchange2()+" 00:00:00";
var date = new Date(startTime2);
var longDateStar = Date.parse(date)/1000;
console.log("getTodaystartTime2="+longDateStar);
return longDateStar;
}
function getTodayendTime2(){
var endTime2 = toDayExchange2()+" 23:59:59";
var date = new Date(endTime2);
var longDateEnd = Date.parse(date)/1000;
console.log("getTodayendTime2="+longDateEnd);
return longDateEnd;
}
function toDayExchange2() {
var date = new Date()
var Y = date.getFullYear() + '-'
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-'
var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' '
// var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'
// var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':'
// var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds())
return Y + M + D
}
//开始云录像
function startstorage2() {
layer.msg('开始录像。');
startTime2 = Date.parse(new Date())/1000-10;
let pId = null;
let idex = 0;
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.start && item.myPlayer !== null) {
pId = item.puid;
}
}
}
});
console.log("清晰录像++++");
requestPost2('CSS/C_CSS_StartManualStorage?token=' + token1, {
puid: pId,
idx: idex,
duration: 5,
reserveDay: 30,
fileLength: 15,
type: 0
}, rv => {
var respJSON = JSON.parse(rv.responseText);
storageId2 = respJSON.Param.ID;
});
}
//获取设备列表
function fetchDevice2(offset, count) {
var self = this;
//获取设备列表的接口
var router = 'CAS/C_CAS_QueryPUIDSets?offset=' + offset + '&count=' + count + '&token=' + token1;
requestGet2(router, rv => {
var respJSON = rv.responseJSON;
if (respJSON.constructor != Array) {
respJSON = [respJSON];
}
device_list = respJSON;
//把设备加载到指定的位置
//console.log("device_list="+JSON.stringify(device_list));
addDevice2(device_list);
if (device_list.length == count) {
offset += count;
fetchDevice2(offset, count);
} else {
return;
}
})
}
function addDevice2(device_list){
$.each(device_list, function (index, item) {
let puId = item.$;
let online = item.OnlineFlag;
if(online == '1'){
onLineBallList.push({
puid: puId,
online: online
});
}
});
// console.log("onLineBallList="+JSON.stringify(onLineBallList));
}
//创建平台连接
function connect2() {
var self = this;
var params = {
"address": _cf_1.connParams.address,
"port": _cf_1.connParams.port,
"user": _cf_1.connParams.user,
"password": _cf_1.connParams.password,
"epid": _cf_1.connParams.epid,
"fixaddr": _cf_1.connParams.bfix
}
requestPost2('login', params, function (rv) {
let self = this;
var result = {
errcode: -1,
token: ''
}
var respJSON = JSON.parse(rv.responseText);
if (respJSON.hasOwnProperty('errcode')) {
result.errcode = respJSON.errcode;
}
if (respJSON.hasOwnProperty('token')) {
result.token = respJSON.token;
result.errcode = 0;
token1 = result.token;
console.log("token1="+token1)
// fetchDevice(0,100);
}
})
}
//post请求
function requestPost2(router, params, callback) {
console.log('router='+router+" ,params="+params+" ,callback="+callback);
console.log('requestPost params2='+JSON.stringify(params));
var self = this;
$.ajax({
type: 'post',
url: _cf_1.q2http_url + router,
data: params,
traditional: true,
dataType: 'json',
async: true,
complete: function (rv) {
console.log("rv2====="+JSON.stringify(rv));
if (typeof callback == 'function') callback(rv)
}
})
}
//get请求
function requestGet2(router, callback) {
var self = this;
var url = _cf_1.q2http_url + router;
$.ajax({
type: 'get',
url: url,
dataType: 'json',
async: true,
complete: function (rv) {
if (typeof callback == 'function') callback(rv)
}
})
}
//get请求
function requestGetWithParam2(router, params,callback) {
var self = this;
var url = _cf_1.q2http_url + router;
$.ajax({
type: 'get',
url: url,
dataType: 'json',
data:params,
async: true,
complete: function (rv) {
if (typeof callback == 'function') callback(rv)
}
})
};
/*********************云台控制****************/
function ptz2(type) {
let pId = null;
let idex = 0;
//视频替换
$.each(playBallList, function (index, item) {
if (!isEmpty(item)) {
if (selectedScreen === item.selectedScreen) {
if (item.start && item.myPlayer !== null) {
pId = item.puid;
}
}
}
});
console.log("pId="+pId)
console.log("sssssss="+selectedScreen)
if(type == 'TurnUp'){
turncontrol2(pId,idex,'up');
}else if(type == 'TurnDown'){
turncontrol2(pId,idex,'down');
}else if(type == 'TurnLeft'){
turncontrol2(pId,idex,'left');
}else if(type == 'TurnRight'){
turncontrol2(pId,idex,'right');
}else if(type == 'ZoomInPicture'){
//放大
zoomcontrol2(pId,idex,'zoomin');
}else if(type == 'ZoomOutPicture'){
//缩小
zoomcontrol2(pId,idex,'zoominout');
}else if(type == 'MakeFocusFar'){
//远焦
focuscontrol2(pId,idex,'faraway');
}else if(type == 'MakeFocusNear'){
//近焦
focuscontrol2(pId,idex,'near');
}else if(type == 'StopFocusMove'){
focuscontrol2(pId,idex,'stop');
}else if(type == 'StopPictureZoom'){
zoomcontrol2(pId,idex,'stop');
}else{
turncontrol2(pId,idex,'stop');
}
};
//清新云台上下左右
//旋转平台功能
async function turncontrol2(puid,idx,option) {
if (option == "up") {
$("#balltop").css("background-image","url('../../../img/video/ydj/s.png')");
await requestPost2('PTZ/C_PTZ_Turn?token=' + token1, {
puid: puid,
idx: idx,
motion: 'up'
}, async (rv) => {
});
} else if (option == "down") {
$("#ballbuttom").css("background-image","url('../../../img/video/ydj/x.png')");
var number = "down";
await requestPost2('PTZ/C_PTZ_Turn?token=' + token1, {
puid: puid,
idx: idx,
motion: 'down'
}, rv => {
});
} else if (option == "left") {
$("#ballleft").css("background-image","url('../../../img/video/ydj/z.png')");
var number = "left";
await requestPost2('PTZ/C_PTZ_Turn?token=' + token1, {
puid: puid,
idx: idx,
motion: 'left'
}, rv => {
});
} else if (option == "right") {
var number = "right";
$("#ballright").css("background-image","url('../../../img/video/ydj/y.png')");
await requestPost2('PTZ/C_PTZ_Turn?token=' + token1, {
puid: puid,
idx: idx,
motion: 'right'
}, rv => {
});
} else if (option == "stop") {
var number = "stop";
console.log("stop----------------");
requestPost2('PTZ/C_PTZ_Turn?token=' + token1, {
puid: puid,
idx: idx,
motion: 'stop'
}, rv => {
console.log("stop++++++++++++++++");
$("#balltop").css("background-image","url('../../../img/video/wdj/s.png')");
$("#ballbuttom").css("background-image","url('../../../img/video/wdj/x.png')");
$("#ballleft").css("background-image","url('../../../img/video/wdj/z.png')");
$("#ballright").css("background-image","url('../../../img/video/wdj/y.png')");
});
}
};
//缩放功能
function zoomcontrol2(puid,idx,option) {
let self = this;
let params = {
puid: puid,
idx: idx,
}
if (option == "stop") {
//停止缩放接口
requestPost2('PTZ/C_PTZ_StopPictureZoom?token=' + token1, params, rv => {
var respJSON = rv.responseJSON;
})
$("#big").css("background-image","url('../../img/video/scale01.png')");
$("#small").css("background-image","url('../../img/video/scale02.png')");
} else if (option == "zoomin") {
//放大图像接口
$("#big").css("background-image","url('../../img/video/scale01.png')");
requestPost2('PTZ/C_PTZ_ZoomInPicture?token=' + token1, params, rv => {})
} else {
$("#small").css("background-image","url('../../img/video/scale02.png')");
//缩小图像接口
requestPost2('PTZ/C_PTZ_ZoomOutPicture?token=' + token1, params, rv => {})
}
};
function focuscontrol2(puid,idx,option) {
let params = {
puid: puid,
idx: idx,
}
if (option == "near") {
$("#jfocus").css("background-image","url('../../img/video/focus01.png')");
requestPost2('PTZ/C_PTZ_MakeFocusNear?token=' + token1, params, rv => {
console.log(rv)
})
} else if (option == "faraway") {
$("#yfocus").css("background-image","url('../../img/video/focus02.png')");
requestPost2('PTZ/C_PTZ_MakeFocusFar?token=' + token1, params, rv => {
console.log(rv)
})
} else {
requestPost2('PTZ/C_PTZ_StopFocusMove?token=' + token1, params, rv => {
console.log(rv)
})
$("#yfocus").css("background-image","url('../../img/video/focus01.png')");
$("#jfocus").css("background-image","url('../../img/video/focus02.png')");
}
}