jyyhq/witDisplay/js/video/videoConnectPlugin.js

988 lines
35 KiB
JavaScript
Raw Permalink Normal View History

2025-02-10 12:18:11 +08:00
//清晰连接id
let connectQxId = null;
//创世连接id
let connectCsId = null;
let exist = false;
var resOAIndex = null;
let ResOAChannelsQx = new P_Utils.Hash();
let path = "D:/";
$(function () {
//键盘监听事件——本地截屏
document.onkeydown = function (event) {
let e = event || window.event || arguments.callee.caller.arguments[0];
if (e && e.code === "KeyB") { // Ctrl_B
if (playBallList.length === 0) {
layer.msg("请先播放视频", {icon: 2});
} else {
screenshot(selectedScreen);
}
}
};
});
/**
* 判断是否存在插件
* @returns {boolean}
*/
function load() {
P_LY.UnLoad();
//初始化插件,插件初始化失败给出提示
try {
let rv = P_LY.Init(new P_LY.Struct.InitParamStruct(true, function (msg) {
console.log("清新", msg)
}));
if (rv.rv !== 0) {
notify("博诺思插件加载失败", "error", "请刷新页面,重新加载插件!!!");//清新插件加载失败
return false;
} else {
connectQx();
}
notify("插件加载成功", "success", "");
return true;
} catch (e) {
return false;
}
}
/**
* 清新连接平台
*/
function connectQx() {
//创建连接,并记录在P_LY.Connections中
let ip = _cf.connParams.address;
let port = _cf.connParams.port;
let epId = _cf.connParams.epid;
let uid = _cf.connParams.user;
let pwd = _cf.connParams.password;
let bfix = _cf.connParams.bfix;
// 构造连接对象
let param = new P_IF.Struct.ConnParamStruct(ip, port, uid, epId, pwd, bfix || 0);
let conn = P_LY.Connect(param);
if (conn.rv === P_Error.SUCCESS) {
// 连接成功返回connectId此参数很重要后面很多操作都需要
connectQxId = conn.response;
} else {
notify("博诺思平台连接失败", "error", "请刷新页面,重新加载!!!"); //清新平台连接失败
}
}
/**
* 页面关闭或刷新释放插件
*/
window.onunload = function () {
unload();
}
/**
* 页面加载完,加载插件
*/
window.onload = function () {
exist = load();
}
/**
* 释放插件对象网页退出必须释放插件否则会出现浏览器异常的错误
*/
function unload() {
//创世插件是否
NPPILY.UnLoad();
//清晰插件释放
P_LY.UnLoad();
}
/**
* 通知
* @param title
* @param type
* @param description
*/
function notify(title, type, description) {
GrowlNotification.notify({
title: title,
type: type,//warning,error,success
description: description,
closeTimeout: 3000,
animation: {
open: 'slide-in',
close: 'slide-out'
},
animationDuration: .2,
position: 'top-left',
});
}
/**
* 清新云台控制
* @param puid puid
* @param type 操作类型
*/
function controlQx(puid, type) {
let options = {
degree: 50
}
switch (type) {
case "TurnUp": //上
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.turnup, options)
break;
case "TurnDown": //停止
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.turndown, options)
break;
case "TurnLeft": //做
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.turnleft, options)
break;
case "TurnRight": //右
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.turnright, options)
break;
case "AugmentAperture": //
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.aperturea)
break;
case "MinishAperture": //拉远
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.aperturem)
break;
case "ZoomInPicture": //放大图片
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.zoomin)
break;
case "ZoomOutPicture": //缩小图片
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.zoomout)
break;
case "MakeFocusFar":
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.focusfar)
break;
case "MakeFocusNear"://使焦点靠近
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.focusnear)
break;
case "StopFocusMove":
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.stopfocus)
break;
case "StopApertureZoom":
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.stopaperture)
break;
case "StopPictureZoom":
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.stopzoom)
break;
default:
P_LY.PTZ.Control(connectQxId, puid, "0", P_LY.Enum.PTZDirection.stopturn)
break;
}
}
/**
* 清新播放视频
* @param puid
* @param idx
* @returns {boolean}
*/
function playQxPlugin(puid, idx) {
// 窗口对象一定放到WindowContainers这个请开发人员注意
if (!P_LY.WindowContainers.get(selectedScreen)) {
P_LY.WindowContainers.set(selectedScreen, new P_LY.Struct.WindowContainerStruct(selectedScreen, P_LY.Enum.WindowType.VIDEO));
}
console.log(P_LY.WindowContainers.get(selectedScreen));
if (P_LY.WindowContainers.get(selectedScreen)) {
let window = P_LY.WindowContainers.get(selectedScreen).window;
if (window != null) {
if (window.status.playvideoing) {
$('#' + window.containerId)[0].innerHtml = "";
stopVideoQx(window.containerId);
}
}
let menu_params = {
menu_command: {
status: true,
menu: [{
key: "stopvideo",
text: "停止视频"
}, {
key: "snapshot",
text: "本地抓拍"
}, {
key: "record",
text: "本地录像"
}, {
key: "playaudio",
text: "播放音频"
}, {
key: "playCall",
text: "开始喊话"
},{
key: "playtalk",
text: "开始对讲"
}, {
key: "cloudrecord",
text: "远程录像"
}, {
key: "cloudsnapshot",
text: "远程抓拍"
}],
callback: function (key) {
switch (key) {
case "stopvideo":
stopVideoQx(window.containerId);
break;
case "snapshot":
localSnapQx(window.containerId, window.params.puid);
break;
case "record":
localVideoQx(window.containerId, window.params.puid);
break;
case "playaudio":
playAudioQx(window.containerId);
break;
case "playCall":
playCallQx(window.containerId);
break;
case "playtalk":
playTalkQx(window.containerId);
break;
case "cloudsnapshot":
cloudSnapshotQx(window.containerId);
break;
case "cloudrecord":
cloudRecordQx(window.containerId);
break;
}
}
}
}
let wndEvent = new P_LY.Struct.WindowEventStruct();
wndEvent.menu_command.status = menu_params.menu_command.status;
wndEvent.menu_command.menu = menu_params.menu_command.menu;
wndEvent.menu_command.callback = menu_params.menu_command.callback;
wndEvent.lbtn_click.status = true;
wndEvent.lbtn_click.callback = function () {
ballScreen(window.containerId)
}
let rv = P_LY.CreateWindow(connectQxId, selectedScreen, P_LY.Enum.WindowType.VIDEO, wndEvent);
if (rv.rv !== P_Error.SUCCESS) {
return false;
}
window = rv.response;
P_LY.WindowContainers.get(selectedScreen).window = window;
P_LY.WindowContainers.get(selectedScreen).window.customParams.upaudio = "start";
P_LY.WindowContainers.get(selectedScreen).window.customParams.talk = "start";
P_LY.WindowContainers.get(selectedScreen).window.customParams.gpsstatus = "start";
let operator = P_LY.PlayVideo(connectQxId, window, puid, idx);
P_LY.ResizeWindowDimension(window, "100%", "100%");
if (operator.rv !== P_Error.SUCCESS) {
//播放成功改变窗口状态
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = false;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = null;
}
});
return false;
} else {
//播放成功改变窗口状态
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = true;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = window;
}
});
ballScreen(window.containerId);
}
}
}
/**
* 创世播放视频
* @param puid
* @param idx
*/
/*function playCsPlugin(puid, idx) {
if (!NPPILY.WindowContainers.get(selectedScreen)) {
NPPILY.WindowContainers.set(selectedScreen, new NPPILY.Struct.WindowContainerStruct($('#' + selectedScreen)[0], NPPILY.Enum.WindowType.VIDEO, false, null, null));
NPPILY.WindowContainers.each(function (item) {
let node = item.value;
if (node.type === NPPILY.Enum.WindowType.VIDEO) {
node.active = item.key === selectedScreen;
}
});
}
console.log(NPPILY.WindowContainers.get(selectedScreen));
if (NPPILY.WindowContainers.get(selectedScreen)) {
let window = NPPILY.WindowContainers.get(selectedScreen).window;
if (window != null) {
if (window.status.playvideoing) {
stopVideoCs(window.containerId);
}
}
//鼠标事件
let menu_params = {
menu_command: {
status: true,
menu: [{
key: "stopvideo",
text: "停止视频"
}, {
key: "snapshot",
text: "本地抓拍"
}, {
key: "record",
text: "本地录像"
}, {
key: "playaudio",
text: "播放音频"
}, {
key: "playCall",
text: "开始喊话"
},{
key: "playtalk",
text: "开始对讲"
}, {
key: "cloudrecord",
text: "远程录像"
}, {
key: "cloudsnapshot",
text: "远程抓拍"
}],
callback: function (key) {
switch (key) {
case "stopvideo":
stopVideoCs(window.containerId);
break;
case "snapshot":
localSnapCs(window.containerId, window.params.puid);
break;
case "record":
localVideoCs(window.containerId, window.params.puid);
break;
case "playaudio":
playAudioCs(window.containerId);
break;
case "playtalk":
playTalkCs(window.containerId);
break;
case "cloudsnapshot":
cloudSnapshotCs(window.containerId);
break;
case "cloudrecord":
cloudRecordCs(window.containerId);
break;
}
}
}
}
let wndEvent = new NPPILY.Struct.WindowEventStruct();
wndEvent.menu_command.status = menu_params.menu_command.status;
wndEvent.menu_command.menu = menu_params.menu_command.menu;
wndEvent.menu_command.callback = menu_params.menu_command.callback;
wndEvent.lbtn_click.status = true;
wndEvent.lbtn_click.callback = function () {
ballScreen(window.containerId)
}
//创建窗口
let rv = NPPILY.CreateWindow(connectCsId, selectedScreen, NPPILY.Enum.WindowType.VIDEO, wndEvent);
if (rv.rv !== P_Error.SUCCESS) {
return false;
}
window = rv.response;
NPPILY.WindowContainers.get(selectedScreen).window = window;
NPPILY.WindowContainers.get(selectedScreen).window.customParams.upaudio = "start";
NPPILY.WindowContainers.get(selectedScreen).window.customParams.talk = "start";
NPPILY.WindowContainers.get(selectedScreen).window.customParams.gpsstatus = "start";
let operator = NPPILY.PlayVideo(connectCsId, window, puid, idx, NPPILY.Enum.NrcapStreamType.REALTIME);
window.customParams.ivName = "";
NPPILY.ResizeWindowDimension(window, "100%", "100%");
if (operator.rv !== P_Error.SUCCESS) {
//播放成功改变窗口状态
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = false;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = null;
}
});
} else {
record(puid, document.title, "球机操作(视频播放)")
//播放成功改变窗口状态
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = true;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = window;
}
});
ballScreen(window.containerId);
}
}
}*/
// 停止视频
function stopVideoCs(selectedScreen) {
if (!NPPILY.WindowContainers.get(selectedScreen)) {
return;
}
let window = NPPILY.WindowContainers.get(selectedScreen).window
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = false;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = null;
}
});
NPPILY.StopVideo(window);
// 把视频插件宽高置为0注意本身及其所有祖先容器不可设置成隐藏尤其在非IE浏览器中
NPPILY.ResizeWindowDimension(window, 0, 0);
record(window.params.puid, document.title, "球机操作(停止视频播放)")
}
/**
* 停止播放
* @param selectedScreen
*/
function stopVideoQx(selectedScreen) {
if (!P_LY.WindowContainers.get(selectedScreen)) {
return;
}
let window = P_LY.WindowContainers.get(selectedScreen).window
$.each(videoList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.playState = false;
}
});
$.each(playBallList, function (index, item) {
if (window.containerId === item.selectedScreen) {
item.window = null;
}
});
P_LY.StopVideo(window);
P_LY.ResizeWindowDimension(window, 0, 0);
record(window.params.puid, document.title, "球机操作(停止视频播放)")
}
/**
* 清新抓拍
* @param selectedScreen
* @param puid
*/
function localSnapQx(selectedScreen, puid) {
let fileName = new Date().getTime() + 'Qx(' + puid + ').bmp'
let wnd = P_LY.WindowContainers.get(selectedScreen).window;
if (typeof wnd != "object") {
return false;
}
if (wnd.status.playvideoing) {
P_LY.Snapshot(wnd, path, fileName);
notify("抓拍成功", "success", "保存路径为:" + path + fileName);
//record(wnd.params.puid, document.title, "球机操作(本地抓拍)")
}
}
/**
* 创世抓拍
* @param selectedScreen
* @param puid
*/
/*function localSnapCs(selectedScreen, puid) {
let fileName = new Date().getTime() + 'Cs(' + puid + ').bmp'
let window = NPPILY.WindowContainers.get(selectedScreen).window;
if (typeof window != "object") {
return false;
}
if (window.status.playvideoing) {
NPPILY.Snapshot(window, path, fileName);
notify("抓拍成功", "success", "保存路径为:" + path + fileName);
record(window.params.puid, document.title, "球机操作(本地抓拍)")
}
}*/
/**
* 清新本地录像
*/
function localVideoQx(selectedScreen, puid) {
let window = P_LY.WindowContainers.get(selectedScreen).window;
if (typeof window != "object") {
return false;
}
if (window.status.playvideoing) {
let fileName = new Date().getTime() + 'Qx(' + puid + ').avi'
P_LY.LocalRecord(window, path, fileName);
if (window.status.recording) {
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "record",
text: "停止本地录像"
}]);
notify("开始本地录像", "success", "保存路径为:" + path + fileName);
//record(window.params.puid, document.title, "球机操作(开始本地录像)")
$('#localVideoBtn').attr('src', '../../img/video/remoteVideo2.png')
} else {
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "record",
text: "本地录像"
}]);
notify("停止本地录像", "success", "");
//record(window.params.puid, document.title, "球机操作(停止本地录像)")
$('#localVideoBtn').attr('src', '../../img/video/remoteVideo.png')
}
}
}
/**
* 创世本地录像
*/
/*function localVideoCs(selectedScreen, puid) {
let window = NPPILY.WindowContainers.get(selectedScreen).window;
if (typeof window != "object") {
return false;
}
if (window.status.playvideoing) {
let fileName = new Date().getTime() + 'Cs(' + puid + ').avi'
NPPILY.LocalRecord(window, path, fileName);
if (window.status.recording) {
NPPILY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "record",
text: "停止本地录像"
}]);
$('#localVideoBtn').css('background-image', 'url(../../img/video/no_check/local_video_no.png)')
notify("开始本地录像", "success", "保存路径为:" + path + fileName);
record(window.params.puid, document.title, "球机操作(开始本地录像)")
} else {
NPPILY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "record",
text: "本地录像"
}]);
$('#localVideoBtn').css('background-image', 'url(../../img/video/no_check/local_video.png)')
notify("停止本地录像", "success", "");
record(window.params.puid, document.title, "球机操作(停止本地录像)")
}
}
}*/
/**
* 清新播放音频
* @param selectedScreen
*/
function playAudioQx(selectedScreen) {
if (P_LY.WindowContainers.get(selectedScreen)) {
let wnd = P_LY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
P_LY.PlayAudio(wnd);
if (wnd.status.playaudioing) {
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "playaudio",
text: "停止音频"
}]);
record(wnd.params.puid, document.title, "球机操作(播放音频)")
} else {
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "playaudio",
text: "播放音频"
}]);
record(wnd.params.puid, document.title, "球机操作(停止音频播放)")
}
}
}
}
/**
* 创世播放音频
* @param selectedScreen
*/
/*function playAudioCs(selectedScreen) {
if (NPPILY.WindowContainers.get(selectedScreen)) {
let wnd = NPPILY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
NPPILY.PlayAudio(wnd);
if (wnd.status.playaudioing) {
NPPILY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "playaudio",
text: "停止音频"
}]);
record(wnd.params.puid, document.title, "球机操作(播放音频)")
} else {
NPPILY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "playaudio",
text: "播放音频"
}]);
record(wnd.params.puid, document.title, "球机操作(停止音频播放)")
}
}
}
}*/
/**
* 清新对讲
* @param selectedScreen
*/
function playTalkQx(selectedScreen) {
let window = P_LY.WindowContainers.get(selectedScreen).window;
if (window) {
if (window.status.playvideoing) {
try {
let rv_arr = checkTalkEnableQx(connectQxId, window.params.puid) || [-1, -1];
resOAIndex = rv_arr[1];
switch (rv_arr[0]) {
case -1:
notify("设备不支持对讲", "warning", "")
return false;
case 0:
notify("资源已被占用,无法开启对讲!", "warning", "")
return false;
default:
break;
}
} catch (e) {
}
if (window.status.playvideoing && window.status.talking) {
let rv = P_LY.CallTalkControl.Stop(connectQxId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = false;
window.customParams.talk = "start";
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playtalk",
text: "开始对讲"
}]);
notify("停止对讲", "success", "");
//record(window.params.puid, document.title, "球机操作(停止对讲)")
}
} else {
let rv = P_LY.CallTalkControl.StartTalk(connectQxId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = true;
window.customParams.talk = "end";
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playtalk",
text: "停止对讲"
}]);
notify("开始对讲", "success", "");
//record(window.params.puid, document.title, "球机操作(开始对讲)")
}
}
}
}
}
/**
* 清新喊话
* @param selectedScreen
*/
function playCallQx(selectedScreen) {
let window = P_LY.WindowContainers.get(selectedScreen).window;
if (window) {
if (window.status.playvideoing) {
try {
let rv_arr = checkTalkEnableQx(connectQxId, window.params.puid) || [-1, -1];
resOAIndex = rv_arr[1];
switch (rv_arr[0]) {
case -1:
notify("设备不支持喊话", "warning", "")
return false;
case 0:
notify("资源已被占用,无法开启喊话!", "warning", "")
return false;
default:
break;
}
} catch (e) {
}
if (window.status.playvideoing && window.status.talking) {
//停止设备喊话或对讲
let rv = P_LY.CallTalkControl.Stop(connectQxId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = false;
window.customParams.talk = "start";
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playCall",
text: "开始喊话"
}]);
notify("停止喊话", "success", "");
//record(window.params.puid, document.title, "球机操作(停止对讲)")
}
} else {
let rv = P_LY.CallTalkControl.StartCall(connectQxId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = true;
window.customParams.talk = "end";
P_LY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playCall",
text: "停止喊话"
}]);
notify("开始喊话", "success", "");
//record(window.params.puid, document.title, "球机操作(开始对讲)")
}
}
}
}
}
/**
* 清新对讲
* @param selectedScreen
*/
/*function playTalkCs(selectedScreen) {
let window = NPPILY.WindowContainers.get(selectedScreen).window;
if (window) {
if (window.status.playvideoing) {
try {
let rv_arr = checkTalkEnableCs(connectCsId, window.params.puid) || [-1, -1];
resOAIndex = rv_arr[1];
switch (rv_arr[0]) {
case -1:
notify("设备不支持对讲", "warning", "")
return false;
case 0:
notify("资源已被占用,无法开启对讲!", "warning", "")
return false;
default:
break;
}
} catch (e) {
}
if (window.status.playvideoing && window.status.talking) {
let rv = NPPILY.CallTalkControl.Stop(connectCsId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = false;
window.customParams.talk = "start";
NPPILY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playtalk",
text: "开始对讲"
}]);
record(window.params.puid, document.title, "球机操作(停止对讲)")
}
} else {
let rv = NPPILY.CallTalkControl.StartTalk(connectCsId, window.params.puid, resOAIndex);
if (rv.rv === P_Error.SUCCESS) {
window.status.talking = true;
window.customParams.talk = "end";
NPPILY.WindowAttachEvent.UpdateMenuCommand(window, [{
key: "playtalk",
text: "停止对讲"
}]);
record(window.params.puid, document.title, "球机操作(开始对讲)")
}
}
}
}
}*/
function checkTalkEnableQx(connectId, puid) {
let rv = P_LY.ForkResource(connectId, P_LY.Enum.ForkResourceLevel.nppForkPUResourceInfo, 0, 200, null, {
PUID: puid
});
let re = rv.response;
for (let i = 0; i < re.length; i++) {
let childRes = re[i];
if (childRes.type === P_LY.Enum.PuResourceType.AudioOut) {
try {
ResOAChannelsQx.set(puid + "_" + childRes.idx, {
puid: puid,
index: childRes.idx,
windowKey: "",
flag: false
});
} catch (e) {
console.log(e.message);
}
}
}
let found = false,
activeResOAIdx = 0,
flag = -1;
ResOAChannelsQx.each(
function (ee) {
let e = ee.value;
if (e.puid === puid) {
flag = 0; // 存在OA资源
if (found === false && e.flag !== true) {
activeResOAIdx = e.index;
found = true;
}
}
}
);
if (found === true) {
flag = 1
}
resOAIndex = activeResOAIdx;
return [flag, activeResOAIdx];
}
function checkTalkEnableCs(connectId, puid) {
let rv = NPPILY.ForkResource(connectId, NPPILY.Enum.ForkResourceLevel.nppForkPUResourceInfo, 0, 200, null, {
PUID: puid
});
let re = rv.response;
for (let i = 0; i < re.length; i++) {
let childRes = re[i];
if (childRes.type === NPPILY.Enum.PuResourceType.AudioOut) {
try {
ResOAChannelsCs.set(puid + "_" + childRes.idx, {
puid: puid,
index: childRes.idx,
windowKey: "",
flag: false
});
} catch (e) {
console.log(e.message);
}
}
}
let found = false,
activeResOAIdx = 0,
flag = -1;
ResOAChannelsCs.each(
function (ee) {
let e = ee.value;
if (e.puid === puid) {
flag = 0; // 存在OA资源
if (found === false && e.flag !== true) {
activeResOAIdx = e.index;
found = true;
}
}
}
);
if (found === true) {
flag = 1
}
resOAIndex = activeResOAIdx;
return [flag, activeResOAIdx];
}
/**
* 清新云抓拍
*/
function cloudSnapshotQx(selectedScreen) {
if (P_LY.WindowContainers.get(selectedScreen)) {
let wnd = P_LY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
let options = {
Duration: 1, //云抓拍持续时间(分)
ReserveDay: 30, //文件保存时间(天)
Interval: 1 //抓拍时间间隔(秒)
}
let rv = P_LY.CloudSnapshotOne(wnd, options);
if (rv.rv === P_Error.SUCCESS) {
notify("远程抓拍成功", "success", "");
}
}
}
}
/**
* 清新云录像
*/
function cloudRecordQx(selectedScreen) {
if (P_LY.WindowContainers.get(selectedScreen)) {
let wnd = P_LY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
let options = {
Duration: 30, //录像持续时间(分)
ReserveDay: 30, //文件保存时间(天)
FileLength: 15, //录像时文件时长(分钟)
}
P_LY.CloudRecord(wnd, options);
console.log(wnd.status.cloudrecording)
if (wnd.status.cloudrecording) {
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "cloudrecord",
text: "取消远程录像"
}]);
notify("开始远程录像", "success", "");
//record(wnd.params.puid, document.title, "球机操作(开始远程录像)")
$('#remoteVideoBtn').attr('src', '../../img/video/localVideo2.png')
} else {
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "cloudrecord",
text: "远程录像"
}]);
notify("停止远程录像", "success", "");
//record(wnd.params.puid, document.title, "球机操作(停止远程录像)")
$('#remoteVideoBtn').attr('src', '../../img/video/localVideo.png')
}
}
}
}
/**
* 创世云抓拍
*/
function cloudSnapshotCs(selectedScreen) {
if (NPPILY.WindowContainers.get(selectedScreen)) {
let wnd = NPPILY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
let rv = NPPILY.SC_ManualStart(connectCsId, "155165612271245609", "0", wnd.params.puid, wnd.params.idx, NPPILY.Enum.NrcapStreamType.PICTURE, "Manual", 1);
if (rv.rv === P_Error.SUCCESS) {
notify("远程抓拍成功", "success", "");
record(wnd.params.puid, document.title, "球机操作(远程抓拍)")
}
}
}
}
/**
* 创世云录像
*/
function cloudRecordCs(selectedScreen) {
if (P_LY.WindowContainers.get(selectedScreen)) {
let wnd = P_LY.WindowContainers.get(selectedScreen).window;
if (wnd.status.playvideoing) {
let options = {
Duration: 30, //录像持续时间(分)
ReserveDay: 30, //文件保存时间(天)
FileLength: 15, //录像时文件时长(分钟)
}
if (!wnd.status.cloudrecording) {
NPPILY.SC_ManualStart(connectCsId, "155165612271245609", "0", wnd.params.puid, wnd.params.idx, NPPILY.Enum.NrcapStreamType.REALTIME, "Manual", 1);
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "cloudrecord",
text: "取消远程录像"
}]);
notify("开始远程录像", "success", "");
record(wnd.params.puid, document.title, "球机操作(远程录像)")
$('#remoteVideoBtn').css('background-image', 'url(../../img/video/no_check/remote_video_no.png)')
} else {
NPPILY.SC_ManualStop(connectCsId, "155165612271245609", "0", wnd.params.puid, wnd.params.idx, NPPILY.Enum.NrcapStreamType.REALTIME);
P_LY.WindowAttachEvent.UpdateMenuCommand(wnd, [{
key: "cloudrecord",
text: "远程录像"
}]);
notify("停止远程录像", "success", "");
record(wnd.params.puid, document.title, "球机操作(停止远程录像)")
$('#remoteVideoBtn').css('background-image', 'url(../../img/video/no_check/remote_video.png)')
}
}
}
}