/** * 云台控制路径 */ 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; }