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