jyyhq/witDisplay/js/video/videoConnectPlugin.js

988 lines
35 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.

//清晰连接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)')
}
}
}
}