nxdt-uniapp/static/js/qx/connection.js

361 lines
9.4 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.

/**
* @Author: zhangtq 2452618307@qq.com
* @Date: 2024-11-18 13:33:30
* @LastEditors: zhangtq 2452618307@qq.com
* @LastEditTime: 2024-11-18 17:50:36
* @FilePath: static/js/qx/connection.js
* @Description: 这是默认设置,可以在设置》工具》File Description中进行配置
*/
var token = null;
var storageId = "";
var startTime ="";
var endTime = "";
var storageType = 0;//初始值1为表示可录像点击后变为2表示可下载
var storageVideoScreen=0;
$(function(){
// connect();
});
function getPhoto(){
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里
saveImage(canvas, new Date().getTime() + '.png'); // 存储图片到本地
}
function saveImage(canvas, filename) {
let image = canvas.toDataURL('image/png').replace('image/png', 'image/octet-stream');
saveAs(image, filename || new Date().getTime() + '.png');
}
function storageVideo(){
console.log("storageType=="+storageType);
if(storageVideoScreen == 0){
storageVideoScreen = selectedScreen;
}else{
console.log("storageVideoScreen=="+storageVideoScreen);
console.log("selectedScreen=="+selectedScreen);
if(storageVideoScreen != selectedScreen){
layer.alert("开始录制和结束录制请确保是同一个视频!!!");
return;
}
}
var num = parseInt(storageType%2);
if(num ==0){
$("#videotape").css("background-image","url('../../../img/video/ydj/lx.png')");
startstorage();
}else{
$("#videotape").css("background-image","url('../../../img/video/wdj/lx.png')");
stopmanual(storageId);
storageVideoScreen =0;
}
storageType++;
console.log("num=="+num);
}
function stopmanual(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;
}
}
}
});
endTime = Date.parse(new Date())/1000+10;
console.log("endTime="+endTime);
console.log("storageId="+id);
requestPost('CSS/C_CSS_StopManualStorage?token=' + token, {
id: id
}, rv => {
getQxVideoList();
});
}
function getQxVideoList(){
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 startTime = getTodayStartTime()+"";
var endTime = getTodayEndTime()+"";
requestGetWithParam('CSS/C_CSS_QueryStorageFiles?token=' + token, {
idx: 0,
puid:pId,
begin:startTime,
end:endTime,
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);
}
mp4Transcode(pId,sTime,eTime);
console.log("files="+files);
});
}
function mp4Transcode(pId,sTime,eTime){
requestPost('CSS/transcode?token=' + token, {
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(){
mp4TranscodeProgress(transcodeId,timer1);
},5000);
});
};
function mp4TranscodeProgress(transcodeId,timer1){
requestGetWithParam('CSS/transcodeProgress?token=' + token, {
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){
clearInterval(timer1);
location.href=q2Url + "CSS/downloadTranscodeFile?token="+token+"&transcodeId="+transcodeId
//location.href=_cf.q2http_url+"icvs/CSS/downloadTranscodeFile?token="+token+"&transcodeId="+transcodeId
}
});
}
function getTodayStartTime(){
var startTime = toDayExchange()+" 00:00:00";
var date = new Date(startTime);
var longDateStar = Date.parse(date)/1000;
console.log("getTodayStartTime="+longDateStar);
return longDateStar;
}
function getTodayEndTime(){
var endTime = toDayExchange()+" 23:59:59";
var date = new Date(endTime);
var longDateEnd = Date.parse(date)/1000;
console.log("getTodayEndTime="+longDateEnd);
return longDateEnd;
}
function toDayExchange() {
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 startstorage() {
layer.msg('开始录像。');
startTime = 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("清晰录像++++");
requestPost('CSS/C_CSS_StartManualStorage?token=' + token, {
puid: pId,
idx: idex,
duration: 5,
reserveDay: 30,
fileLength: 15,
type: 0
}, rv => {
var respJSON = JSON.parse(rv.responseText);
storageId = respJSON.Param.ID;
});
}
//创建平台连接
function connect() {
var self = this;
var params = {
"address": _cf.connParams.address,
"port": _cf.connParams.port,
"user": _cf.connParams.user,
"password": _cf.connParams.password,
"epid": _cf.connParams.epid,
"fixaddr": _cf.connParams.bfix
}
requestPost('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;
token = result.token;
console.log("token="+token)
// fetchDevice(0,100);
}
})
}
//post请求
function requestPost(router, params, callback) {
// console.log('router='+router+" ,params="+params+" ,callback="+callback);
console.log('requestPost params='+JSON.stringify(params));
var self = this;
$.ajax({
type: 'post',
url: q2Url + router,
data: params,
traditional: true,
dataType: 'json',
async: true,
complete: function (rv) {
console.log(JSON.stringify(rv));
if (typeof callback == 'function') callback(rv)
}
})
}
//get请求
function requestGet(router, callback) {
var self = this;
var url = q2Url + router;
$.ajax({
type: 'get',
url: url,
dataType: 'json',
async: true,
complete: function (rv) {
if (typeof callback == 'function') callback(rv)
}
})
}
//get请求
function requestGetWithParam(router, params,callback) {
var self = this;
var url = q2Url + router;
$.ajax({
type: 'get',
url: url,
dataType: 'json',
data:params,
async: true,
complete: function (rv) {
if (typeof callback == 'function') callback(rv)
}
})
};
//缩放功能
function zoomcontrol(puid,idx,option) {
let self = this;
let params = {
puid: puid,
idx: idx,
}
if (option == "stop") {
//停止缩放接口
requestPost('PTZ/C_PTZ_StopPictureZoom?token=' + token, params, rv => {
var respJSON = rv.responseJSON;
})
$("#big").css("background-image","url('../../../img/video/wdj/fd.png')");
$("#small").css("background-image","url('../../../img/video/wdj/sx.png')");
} else if (option == "zoomin") {
//放大图像接口
$("#big").css("background-image","url('../../../img/video/ydj/fd.png')");
requestPost('PTZ/C_PTZ_ZoomInPicture?token=' + token, params, rv => {})
} else {
$("#small").css("background-image","url('../../../img/video/ydj/sx.png')");
//缩小图像接口
requestPost('PTZ/C_PTZ_ZoomOutPicture?token=' + token, params, rv => {})
}
};
function focuscontrol(puid,idx,option) {
let params = {
puid: puid,
idx: idx,
}
if (option == "near") {
$("#jfocus").css("background-image","url('../../../img/video/ydj/jj.png')");
requestPost('PTZ/C_PTZ_MakeFocusNear?token=' + token, params, rv => {
console.log(rv)
})
} else if (option == "faraway") {
$("#yfocus").css("background-image","url('../../../img/video/ydj/yj.png')");
requestPost('PTZ/C_PTZ_MakeFocusFar?token=' + token, params, rv => {
console.log(rv)
})
} else {
requestPost('PTZ/C_PTZ_StopFocusMove?token=' + token, params, rv => {
console.log(rv)
})
$("#yfocus").css("background-image","url('../../../img/video/wdj/yj.png')");
$("#jfocus").css("background-image","url('../../../img/video/wdj/jj.png')");
}
}