cc-jjsp-web/bns/js/dutyTask/remotePatrol/uapVideoUtils.js

146 lines
3.4 KiB
JavaScript

/**
* 云台控制路径
*/
let video_ip = '11.158.0.129';
let video_port = '80';
let ak='wangzh0059';
let video_token='backendCommon-microService-mediatranscode';
let sk='RGVzdGlueTEyMzQ1Nn4=';
//请求地址
let uap_video_login='/api/v1/authorization';
let uap_video_yt='microService/mediatranscode/api/v1/cameraControlEx';
let uap_videp_play="uvp-micro-service/api/v1/play";
let publicMap='';
function uaplogin(){
$.ajax({
async: false,
data: JSON.stringify({ ak, sk }),
headers:{
"Authorization":localStorage.getItem("tokens")
},
type: "POST",
contentType: 'application/json',
dataType: "json",
url: 'http://11.158.0.129:80/uvp-backend-common'+uap_video_login,
success: function (result) {
if (result && result.successful) {
video_token = result.resultValue.token;
publicMap=getParem("",publicParam())
}
},
error:function(e){
console.log(e)
}
})
}
//定义回调方法
window.onEventNotify = (type, context) => {
console.log(type, context)
}
/**
* @param {Object} format -视频流格式
* @param {Object} codec //视频流格式编码
* @param {Object} main //猪ma流
* @param {Object} code //视频编码
*/
function playVideoUrl(format,codec,main,code){
const myMap = new Map();
myMap.set("codec", codec);
myMap.set("format", format);
myMap.set("main", main);
myMap.set("code", code);
myMap.set("redirect", 'false');
let param=getParem(publicMap,myMap);
let videoIp='http://11.158.0.129:80/'+uap_videp_play+param;
return videoIp;
}
// function playVideo(){
// }
/**
* 球机云台控制
*/
function PTZControl(code,cmd){
const myMap = new Map();
myMap.set("code", code);
//指令
myMap.set("cmd", cmd);
//云台速度
myMap.set("param1", 4);
let param=getParem(publicMap,myMap);
$.ajax({
async: false,
type: "POST",
contentType: 'application/json',
headers:{
"Authorization":localStorage.getItem("tokens")
},
dataType: "json",
url: dataUrl+uap_video_yt+param,
success: function (result) {
console.log("球机编号为code="+code+",执行了指令cmd="+cmd)
}
})
}
/**
* 默认公共参数
*/
function publicParam(){
const myMap = new Map();
const timestamp = new Date().getTime();
var uuid = generateUUID();
myMap.set("timestamp", timestamp);
myMap.set("token", video_token);
myMap.set("sessionId", uuid);
myMap.set("ak", sk);
myMap.set("nonce",uuid);
return myMap;
}
function generateRandomString(length) {
let result = '';
const characters = '-abcdefghijklmnopqrstuvwxyz0123456789';
const charactersLength = characters.length;
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0] / (Math.pow(2, 32) - 1) * charactersLength));
}
return result;
}
/**
* map 封装
* @param {Object} param
* @param {Object} myMap
*/
function getParem(param,myMap){
for (const [key, value] of myMap) {
if(param){
param=param+"&"+key+"="+value;
}else{
param="?"+key+"="+value;
}
}
return param;
}
/**
* 生成uuid
*/
function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
var r = (d + Math.random() * 16) % 16 | 0;
d = Math.floor(d / 16);
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
});
return uuid;
}