146 lines
3.4 KiB
JavaScript
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;
|
|
}
|
|
|