// Init plugin // overall save the current selected window var g_iWndIndex = 0; //don't have to set the variable; default to use the current selected window without transmiting value when the interface has window parameters $(function () { // check the installation status of plugin var iRet = WebVideoCtrl.I_CheckPluginInstall(); if (-1 == iRet) { alert("If the plugin is uninstalled, please install the WebComponentsKit.exe!"); return; } // Init plugin parameters and insert the plugin WebVideoCtrl.I_InitPlugin(500, 300, { bWndFull: true, //Wether support doule clicking to switch the full-screen mode: it's supported by default; true:support, false:not support iPackageType: 2, //2:PS 11:MP4 iWndowType: 1, bNoPlugin: true, cbSelWnd: function (xmlDoc) { g_iWndIndex = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10); var szInfo = "selected window number: " + g_iWndIndex; showCBInfo(szInfo); }, cbDoubleClickWnd: function (iWndIndex, bFullScreen) { var szInfo = "present window number to zoom: " + iWndIndex; if (!bFullScreen) { szInfo = "present window number to restore: " + iWndIndex; } showCBInfo(szInfo); // you can handle the single window bit stream switching here /*if (bFullScreen) { clickStartRealPlay(1); } else { clickStartRealPlay(2); }*/ }, cbEvent: function (iEventType, iParam1, iParam2) { if (2 == iEventType) {// playback finished normally showCBInfo("window " + iParam1 + " playback finished!"); } else if (-1 == iEventType) { showCBInfo("device " + iParam1 + " network error!"); } else if (3001 == iEventType) { clickStopRecord(g_szRecordType, iParam1); } }, cbRemoteConfig: function () { showCBInfo("closed remote config!"); }, cbInitPluginComplete: function () { WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin"); // check plugin to see whether it is the latest if (-1 == WebVideoCtrl.I_CheckPluginVersion()) { alert("Detect the latest version, please double click WebComponentsKit.exe to update!"); return; } } }); // window event binding $(window).bind({ resize: function () { var $Restart = $("#restartDiv"); if ($Restart.length > 0) { var oSize = getWindowSize(); $Restart.css({ width: oSize.width + "px", height: oSize.height + "px" }); } } }); //init date var szCurTime = dateFormat(new Date(), "yyyy-MM-dd"); $("#starttime").val(szCurTime + " 00:00:00"); $("#endtime").val(szCurTime + " 23:59:59"); $("#downloadstarttime").val(szCurTime + " 00:00:00"); $("#downloadendtime").val(szCurTime + " 23:59:59"); if(WebVideoCtrl.I_SupportNoPlugin()){ $(".localconfig").hide(); $(".ipparse").hide(); $("#checkVersion").hide(); $("#remoteconfig").hide(); $("#btnReverse").hide(); } }); // display operation info function showOPInfo(szInfo, status, xmlDoc) { var szTip = "
" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo; if (typeof status != "undefined" && status != 200) { var szStatusString = $(xmlDoc).find("statusString").eq(0).text(); var szSubStatusCode = $(xmlDoc).find("subStatusCode").eq(0).text(); if ("" === szSubStatusCode) { if("" === szSubStatusCode && "" === szStatusString){ szTip += "(" + status + ")"; } else{ szTip += "(" + status + ", " + szStatusString + ")"; } } else { szTip += "(" + status + ", " + szSubStatusCode + ")"; } } szTip += "
"; $("#opinfo").html(szTip + $("#opinfo").html()); } // display callback info function showCBInfo(szInfo) { szInfo = "
" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "
"; $("#cbinfo").html(szInfo + $("#cbinfo").html()); } // time format function dateFormat(oDate, fmt) { var o = { "M+": oDate.getMonth() + 1, //month "d+": oDate.getDate(), //day "h+": oDate.getHours(), //hour "m+": oDate.getMinutes(), //minute "s+": oDate.getSeconds(), //second "q+": Math.floor((oDate.getMonth() + 3) / 3), //quarter "S": oDate.getMilliseconds()//millisecond }; if (/(y+)/.test(fmt)) { fmt = fmt.replace(RegExp.$1, (oDate.getFullYear() + "").substr(4 - RegExp.$1.length)); } for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) { fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); } } return fmt; } // get window size function getWindowSize() { var nWidth = $(this).width() + $(this).scrollLeft(), nHeight = $(this).height() + $(this).scrollTop(); return {width: nWidth, height: nHeight}; } // open option dialog 0: folder, 1: file function clickOpenFileDlg(id, iType) { WebVideoCtrl.I2_OpenFileDlg(iType).then(function(szDirPath){ if (szDirPath != -1 && szDirPath != "" && szDirPath != null) { $("#" + id).val(szDirPath); } }); // var szDirPath = WebVideoCtrl.I_OpenFileDlg(iType); // if (szDirPath != -1 && szDirPath != "" && szDirPath != null) { // $("#" + id).val(szDirPath); // } } // get local parameters function clickGetLocalCfg() { var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); if (xmlDoc != null) { $("#netsPreach").val($(xmlDoc).find("BuffNumberType").eq(0).text()); $("#wndSize").val($(xmlDoc).find("PlayWndType").eq(0).text()); $("#rulesInfo").val($(xmlDoc).find("IVSMode").eq(0).text()); $("#captureFileFormat").val($(xmlDoc).find("CaptureFileFormat").eq(0).text()); $("#packSize").val($(xmlDoc).find("PackgeSize").eq(0).text()); $("#recordPath").val($(xmlDoc).find("RecordPath").eq(0).text()); $("#downloadPath").val($(xmlDoc).find("DownloadPath").eq(0).text()); $("#previewPicPath").val($(xmlDoc).find("CapturePath").eq(0).text()); $("#playbackPicPath").val($(xmlDoc).find("PlaybackPicPath").eq(0).text()); $("#devicePicPath").val($(xmlDoc).find("DeviceCapturePath").eq(0).text()); $("#playbackFilePath").val($(xmlDoc).find("PlaybackFilePath").eq(0).text()); $("#protocolType").val($(xmlDoc).find("ProtocolType").eq(0).text()); showOPInfo("local configuration success!"); } else { showOPInfo("local configuration failed!"); } } // set local parameters function clickSetLocalCfg() { var arrXml = [], szInfo = ""; arrXml.push(""); arrXml.push("" + $("#packSize").val() + ""); arrXml.push("" + $("#wndSize").val() + ""); arrXml.push("" + $("#netsPreach").val() + ""); arrXml.push("" + $("#recordPath").val() + ""); arrXml.push("" + $("#previewPicPath").val() + ""); arrXml.push("" + $("#playbackFilePath").val() + ""); arrXml.push("" + $("#playbackPicPath").val() + ""); arrXml.push("" + $("#devicePicPath").val() + ""); arrXml.push("" + $("#downloadPath").val() + ""); arrXml.push("" + $("#rulesInfo").val() + ""); arrXml.push("" + $("#captureFileFormat").val() + ""); arrXml.push("" + $("#protocolType").val() + ""); arrXml.push(""); var iRet = WebVideoCtrl.I_SetLocalCfg(arrXml.join("")); if (0 == iRet) { szInfo = "local configuration success!"; } else { szInfo = "local configuration failed!"; } showOPInfo(szInfo); } // windows number function changeWndNum(iType) { iType = parseInt(iType, 10); WebVideoCtrl.I_ChangeWndNum(iType); } // login function clickLogin() { var szIP = $("#loginip").val(), szPort = $("#port").val(), szUsername = $("#username").val(), szPassword = $("#password").val(); if ("" == szIP || "" == szPort) { return; } var szDeviceIdentify = szIP + "_" + szPort; var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { success: function (xmlDoc) { showOPInfo(szDeviceIdentify + " login success!"); $("#ip").prepend(""); //var i =1; setTimeout(function () { $("#ip").val(szDeviceIdentify); getChannelInfo(); getDevicePort(); }, 10); // var a= setInterval(function(){ // i++; // if(i>100){ // clearInterval(a); // alert("done"); // } // clickStartRealPlay(); // setTimeout(function () { // clickStopRealPlay(); // }, 900); // },1000); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " login failed!", status, xmlDoc); } }); if (-1 == iRet) { showOPInfo(szDeviceIdentify + " login already !"); } } // exit function clickLogout() { var szDeviceIdentify = $("#ip").val(), szInfo = ""; if (null == szDeviceIdentify) { return; } var iRet = WebVideoCtrl.I_Logout(szDeviceIdentify); if (0 == iRet) { szInfo = "exit success!"; $("#ip option[value='" + szDeviceIdentify + "']").remove(); getChannelInfo(); getDevicePort(); } else { szInfo = "exit failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } // get deivce info function clickGetDeviceInfo() { var szDeviceIdentify = $("#ip").val(); if (null == szDeviceIdentify) { return; } WebVideoCtrl.I_GetDeviceInfo(szDeviceIdentify, { success: function (xmlDoc) { var arrStr = []; arrStr.push("device name:" + $(xmlDoc).find("deviceName").eq(0).text() + "\r\n"); arrStr.push("device ID:" + $(xmlDoc).find("deviceID").eq(0).text() + "\r\n"); arrStr.push("model:" + $(xmlDoc).find("model").eq(0).text() + "\r\n"); arrStr.push("serial number:" + $(xmlDoc).find("serialNumber").eq(0).text() + "\r\n"); arrStr.push("MAC address:" + $(xmlDoc).find("macAddress").eq(0).text() + "\r\n"); arrStr.push("firmware version:" + $(xmlDoc).find("firmwareVersion").eq(0).text() + " " + $(xmlDoc).find("firmwareReleasedDate").eq(0).text() + "\r\n"); arrStr.push("encoder version:" + $(xmlDoc).find("encoderVersion").eq(0).text() + " " + $(xmlDoc).find("encoderReleasedDate").eq(0).text() + "\r\n"); showOPInfo(szDeviceIdentify + " get deivce info success!"); alert(arrStr.join("")); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " get device info failed!", status, xmlDoc); } }); } // get channel info function getChannelInfo() { var szDeviceIdentify = $("#ip").val(), oSel = $("#channels").empty(); if (null == szDeviceIdentify) { return; } // analog channel WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("VideoInputChannel"); $.each(oChannels, function (i) { var id = $(this).find("id").eq(0).text(), name = $(this).find("name").eq(0).text(); if ("" == name) { name = "Camera " + (i < 9 ? "0" + (i + 1) : (i + 1)); } oSel.append(""); }); showOPInfo(szDeviceIdentify + " get analog channel success!"); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " get analog channel failed!", status, xmlDoc); } }); // IP channel WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); $.each(oChannels, function (i) { var id = $(this).find("id").eq(0).text(), name = $(this).find("name").eq(0).text(), online = $(this).find("online").eq(0).text(); if ("false" == online) {// filter the forbidden IP channel return true; } if ("" == name) { name = "IPCamera " + (i < 9 ? "0" + (i + 1) : (i + 1)); } oSel.append(""); }); showOPInfo(szDeviceIdentify + " get IP channel success!"); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " get IP channel failed!", status, xmlDoc); } }); // zero-channel info WebVideoCtrl.I_GetZeroChannelInfo(szDeviceIdentify, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("ZeroVideoChannel"); $.each(oChannels, function (i) { var id = $(this).find("id").eq(0).text(), name = $(this).find("name").eq(0).text(); if ("" == name) { name = "Zero Channel " + (i < 9 ? "0" + (i + 1) : (i + 1)); } if ("true" == $(this).find("enabled").eq(0).text()) {// filter the forbidden zero-channel oSel.append(""); } }); showOPInfo(szDeviceIdentify + " get zero-channel success!"); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " get zero-channel failed!", status, xmlDoc); } }); } // get port function getDevicePort() { var szDeviceIdentify = $("#ip").val(); if (null == szDeviceIdentify) { return; } var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify); if (oPort != null) { $("#deviceport").val(oPort.iDevicePort); $("#rtspport").val(oPort.iRtspPort); showOPInfo(szDeviceIdentify + " get port success!"); } else { showOPInfo(szDeviceIdentify + " get port failed!"); } } // get IP channel function clickGetDigitalChannelInfo() { var szDeviceIdentify = $("#ip").val(), iAnalogChannelNum = 0; $("#digitalchannellist").empty(); if (null == szDeviceIdentify) { return; } // analog channel WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, { async: false, success: function (xmlDoc) { iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length; }, error: function () { } }); // IP channel WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); $.each(oChannels, function () { var id = parseInt($(this).find("id").eq(0).text(), 10), ipAddress = $(this).find("ipAddress").eq(0).text(), srcInputPort = $(this).find("srcInputPort").eq(0).text(), managePortNo = $(this).find("managePortNo").eq(0).text(), online = $(this).find("online").eq(0).text(), proxyProtocol = $(this).find("proxyProtocol").eq(0).text(); var objTr = $("#digitalchannellist").get(0).insertRow(-1); var objTd = objTr.insertCell(0); objTd.innerHTML = (id - iAnalogChannelNum) < 10 ? "D0" + (id - iAnalogChannelNum) : "D" + (id - iAnalogChannelNum); objTd = objTr.insertCell(1); objTd.width = "25%"; objTd.innerHTML = ipAddress; objTd = objTr.insertCell(2); objTd.width = "15%"; objTd.innerHTML = srcInputPort; objTd = objTr.insertCell(3); objTd.width = "20%"; objTd.innerHTML = managePortNo; objTd = objTr.insertCell(4); objTd.width = "15%"; objTd.innerHTML = "true" == online ? "online" : "offline"; objTd = objTr.insertCell(5); objTd.width = "25%"; objTd.innerHTML = proxyProtocol; }); showOPInfo(szDeviceIdentify + " get IP channel success!"); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " no IP channel!", status, xmlDoc); } }); } // strat real play function clickStartRealPlay(iStreamType) { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szDeviceIdentify = $("#ip").val(), iRtspPort = parseInt($("#rtspport").val(), 10), iChannelID = parseInt($("#channels").val(), 10), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, szInfo = ""; if ("undefined" === typeof iStreamType) { iStreamType = parseInt($("#streamtype").val(), 10); } if (null == szDeviceIdentify) { return; } var startRealPlay = function () { WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, { iRtspPort: iRtspPort, iStreamType: iStreamType, iChannelID: iChannelID, bZeroChannel: bZeroChannel, success: function () { szInfo = "start real play success!"; showOPInfo(szDeviceIdentify + " " + szInfo); }, error: function (status, xmlDoc) { if (403 === status) { szInfo = "Device do not support Websocket extracting the flow!"; } else { szInfo = "start real play failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } }); }; if (oWndInfo != null) {// stop play first WebVideoCtrl.I_Stop({ success: function () { startRealPlay(); } }); } else { startRealPlay(); } } function setTextOverlay() { var szDeviceIdentify = $("#ip").val(); var szInfo = ""; var that = this; var szUrl = "ISAPI/System/Video/inputs/channels/1/overlays"; WebVideoCtrl.I_GetTextOverlay(szUrl,szDeviceIdentify,{ success:function(data){ $(data).find("TextOverlay").eq(0).find("displayText").eq(0).text("eee6444是66ee<"); $(data).find("TextOverlay").eq(0).find("positionX").eq(0).text("208"); $(data).find("TextOverlay").eq(0).find("positionY").eq(0).text("304"); var xmldoc = toXMLStr(data); var newOptions = { async:true, type: "PUT", data:xmldoc, success:function(){ szInfo = "draw osd succ"; showOPInfo(szDeviceIdentify + " " + szInfo); }, error:function(){ szInfo = "draw osd fail"; showOPInfo(szDeviceIdentify + " " + szInfo); } }; WebVideoCtrl.I_SendHTTPRequest(szDeviceIdentify,szUrl,newOptions); }, error:function(){ szInfo = "get osd fail"; showOPInfo(szDeviceIdentify + " " + szInfo); } }); } // stop real play function clickStopRealPlay() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_Stop({ success: function () { szInfo = "stop real play success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "stop real play failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // open sound function clickOpenSound() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var allWndInfo = WebVideoCtrl.I_GetWindowStatus(); // close the sound by iterating over all the window for (var i = 0, iLen = allWndInfo.length; i < iLen; i++) { oWndInfo = allWndInfo[i]; if (oWndInfo.bSound) { WebVideoCtrl.I_CloseSound(oWndInfo.iIndex); break; } } var iRet = WebVideoCtrl.I_OpenSound(); if (0 == iRet) { szInfo = "open sound success!"; } else { szInfo = "open sound failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // close sound function clickCloseSound() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_CloseSound(); if (0 == iRet) { szInfo = "close sound success!"; } else { szInfo = "close sound failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // set volume function clickSetVolume() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), iVolume = parseInt($("#volume").val(), 10), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_SetVolume(iVolume); if (0 == iRet) { szInfo = "set volume success!"; } else { szInfo = "set volume failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // capture function clickCapturePic() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); var szCaptureFileFormat = "0"; if (xmlDoc != null) { szCaptureFileFormat = $(xmlDoc).find("CaptureFileFormat").eq(0).text(); } var szChannelID = $("#channels").val(); var szPicName = oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime(); szPicName += ("0" === szCaptureFileFormat) ? ".jpg": ".bmp"; var iRet = WebVideoCtrl.I_CapturePic(szPicName, { bDateDir: true //generate the date file or not }); if (0 == iRet) { szInfo = "capture success!"; } else { szInfo = "capture failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // capture onload function clickCapturePicData() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I2_CapturePicData().then(function(data){ szInfo = "capture onload success!"; console.log(data); showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); },function(){ szInfo = "capture onload failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }); } } // start record var g_szRecordType = ""; function clickStartRecord(szType) { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; g_szRecordType = szType; if (oWndInfo != null) { var szChannelID = $("#channels").val(), szFileName = oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime(); WebVideoCtrl.I_StartRecord(szFileName, { bDateDir: true, //generate the date file or not success: function () { if ('realplay' === szType) { szInfo = "start recording success!"; } else if ('playback' === szType) { szInfo = "start clip success!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { if ('realplay' === szType) { szInfo = "start recording failed!"; } else if ('playback' === szType) { szInfo = "start clip failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // stop record function clickStopRecord(szType, iWndIndex) { if ("undefined" === typeof iWndIndex) { iWndIndex = g_iWndIndex; } var oWndInfo = WebVideoCtrl.I_GetWindowStatus(iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_StopRecord({ success: function () { if ('realplay' === szType) { szInfo = "stop recording success!"; } else if ('playback' === szType) { szInfo = "stop clip success!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { if ('realplay' === szType) { szInfo = "stop recording failed!"; } else if ('playback' === szType) { szInfo = "stop clip failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // get audio channel function clickGetAudioInfo() { var szDeviceIdentify = $("#ip").val(); if (null == szDeviceIdentify) { return; } WebVideoCtrl.I_GetAudioInfo(szDeviceIdentify, { success: function (xmlDoc) { var oAudioChannels = $(xmlDoc).find("TwoWayAudioChannel"), oSel = $("#audiochannels").empty(); $.each(oAudioChannels, function () { var id = $(this).find("id").eq(0).text(); oSel.append(""); }); showOPInfo(szDeviceIdentify + " get audio channel success!"); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " get audio channel failed!", status, xmlDoc); } }); } // start voice talk function clickStartVoiceTalk() { var szDeviceIdentify = $("#ip").val(), iAudioChannel = parseInt($("#audiochannels").val(), 10), szInfo = ""; if (null == szDeviceIdentify) { return; } if (isNaN(iAudioChannel)) { alert("please select channel first!"); return; } var iRet = WebVideoCtrl.I_StartVoiceTalk(szDeviceIdentify, iAudioChannel); if (0 == iRet) { szInfo = "start voice talk success!"; } else { szInfo = "start voice talk failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } // stop voice talk function clickStopVoiceTalk() { var szDeviceIdentify = $("#ip").val(), iRet = WebVideoCtrl.I_StopVoiceTalk(), szInfo = ""; if (null == szDeviceIdentify) { return; } if (0 == iRet) { szInfo = "stop voice talk success!"; } else { szInfo = "stop voice talk failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } // enable E-zoom function clickEnableEZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_EnableEZoom(); if (0 == iRet) { szInfo = "enable E-zoom success!"; } else { szInfo = "enable E-zoom failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // disable E-zoom function clickDisableEZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_DisableEZoom(); if (0 == iRet) { szInfo = "disable E-zoom success!"; } else { szInfo = "disable E-zoom failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // enable 3D zoom function clickEnable3DZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Enable3DZoom(); if (0 == iRet) { szInfo = "enable 3D zoom success!"; } else { szInfo = "enable 3D zoom failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // diasble 3D zoom function clickDisable3DZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Disable3DZoom(); if (0 == iRet) { szInfo = "diasble 3D zoom success!"; } else { szInfo = "diasble 3D zoom failed!"; } showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } } // full screen function clickFullScreen() { WebVideoCtrl.I_FullScreen(true); } // PTZ control, 9- auto; 1,2,3,4,5,6,7,8 - PTZ direction control by mouse var g_bPTZAuto = false; function mouseDownPTZControl(iPTZIndex) { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iPTZSpeed = $("#ptzspeed").val(); if (bZeroChannel) {// zero-channel does not support PTZ return; } if (oWndInfo != null) { if (9 == iPTZIndex && g_bPTZAuto) { iPTZSpeed = 0;// you can close auto mode by setting speed to 0 when auto is start already } else { g_bPTZAuto = false;// auto mode will be close when you clik other direction } WebVideoCtrl.I_PTZControl(iPTZIndex, false, { iPTZSpeed: iPTZSpeed, success: function (xmlDoc) { if (9 == iPTZIndex && g_bPTZAuto) { showOPInfo(oWndInfo.szDeviceIdentify + " stop PTZ success!"); } else { showOPInfo(oWndInfo.szDeviceIdentify + " start PTZ success!"); } if (9 == iPTZIndex) { g_bPTZAuto = !g_bPTZAuto; } }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " start PTZ failed!", status, xmlDoc); } }); } } // stop PTZ direction function mouseUpPTZControl() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(1, true, { success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop PTZ success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop PTZ failed!", status, xmlDoc); } }); } } // set preset function clickSetPreset() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), iPresetID = parseInt($("#preset").val(), 10); if (oWndInfo != null) { WebVideoCtrl.I_SetPreset(iPresetID, { success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " set preset success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " set preset failed!", status, xmlDoc); } }); } } // call preset function clickGoPreset() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), iPresetID = parseInt($("#preset").val(), 10); if (oWndInfo != null) { WebVideoCtrl.I_GoPreset(iPresetID, { success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " call preset success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " call preset failed!", status, xmlDoc); } }); } } // record searching var g_iSearchTimes = 0; function clickRecordSearch(iType) { var szDeviceIdentify = $("#ip").val(), iChannelID = parseInt($("#channels").val(), 10), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iStreamType = parseInt($("#record_streamtype").val(), 10), szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(); if (Date.parse(szEndTime.replace(/-/g, "/")) - Date.parse(szStartTime.replace(/-/g, "/")) < 0) { alert("starttime must earlier than endtime"); return; } if (null == szDeviceIdentify) { return; } if (bZeroChannel) {// zero-channel does not support record searching return; } if (0 == iType) {// search for the first time $("#searchlist").empty(); iSearchTimes = 0; } WebVideoCtrl.I_RecordSearch(szDeviceIdentify, iChannelID, szStartTime, szEndTime, { iStreamType: iStreamType, iSearchPos: g_iSearchTimes * 40, success: function (xmlDoc) { if("MORE" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { for(var i = 0, nLen = $(xmlDoc).find("searchMatchItem").length; i < nLen; i++) { var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); if(szPlaybackURI.indexOf("name=") < 0) { break; } var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size=")); var objTr = $("#searchlist").get(0).insertRow(-1); var objTd = objTr.insertCell(0); objTd.id = "downloadTd" + i; objTd.innerHTML = g_iSearchTimes * 40 + (i + 1); objTd = objTr.insertCell(1); objTd.width = "30%"; objTd.innerHTML = szFileName; objTd = objTr.insertCell(2); objTd.width = "30%"; objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", ""); objTd = objTr.insertCell(3); objTd.width = "30%"; objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", ""); objTd = objTr.insertCell(4); objTd.width = "10%"; objTd.innerHTML = "download"; $("#downloadTd" + (i + g_iSearchTimes * 40)).data("fileName", szFileName); $("#downloadTd" + (i + g_iSearchTimes * 40)).data("playbackURI", szPlaybackURI); } g_iSearchTimes++; clickRecordSearch(1);// contine to search } else if ("OK" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { var iLength = $(xmlDoc).find("searchMatchItem").length; for(var i = 0; i < iLength; i++) { var szPlaybackURI = $(xmlDoc).find("playbackURI").eq(i).text(); if(szPlaybackURI.indexOf("name=") < 0) { break; } var szStartTime = $(xmlDoc).find("startTime").eq(i).text(); var szEndTime = $(xmlDoc).find("endTime").eq(i).text(); var szFileName = szPlaybackURI.substring(szPlaybackURI.indexOf("name=") + 5, szPlaybackURI.indexOf("&size=")); var objTr = $("#searchlist").get(0).insertRow(-1); var objTd = objTr.insertCell(0); objTd.id = "downloadTd" + i; objTd.innerHTML = g_iSearchTimes * 40 + (i + 1); objTd = objTr.insertCell(1); objTd.width = "30%"; objTd.innerHTML = szFileName; objTd = objTr.insertCell(2); objTd.width = "30%"; objTd.innerHTML = (szStartTime.replace("T", " ")).replace("Z", ""); objTd = objTr.insertCell(3); objTd.width = "30%"; objTd.innerHTML = (szEndTime.replace("T", " ")).replace("Z", ""); objTd = objTr.insertCell(4); objTd.width = "10%"; objTd.innerHTML = "download"; $("#downloadTd" + (i + g_iSearchTimes * 40)).data("fileName", szFileName); $("#downloadTd" + (i + g_iSearchTimes * 40)).data("playbackURI", szPlaybackURI); } showOPInfo(szDeviceIdentify + " search video file success!"); } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { setTimeout(function() { showOPInfo(szDeviceIdentify + " no record file!"); }, 50); } }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " search record file failed!", status, xmlDoc); } }); } // start play back function clickStartPlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szDeviceIdentify = $("#ip").val(), iRtspPort = parseInt($("#rtspport").val(), 10), iStreamType = parseInt($("#record_streamtype").val(), 10), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iChannelID = parseInt($("#channels").val(), 10), szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(), szInfo = "", bChecked = $("#transstream").prop("checked"), iRet = -1; if (null == szDeviceIdentify) { return; } if (bZeroChannel) {// zero-channel does not support play back return; } var startPlayback = function () { if (bChecked) {// enable transcode playback var oTransCodeParam = { TransFrameRate: "16",// 0:full,5:1,6:2,7:4,8:6,9:8,10:10,11:12,12:16,14:15,15:18,13:20,16:22 TransResolution: "2",// 255:Auto,3:4CIF,2:QCIF,1:CIF TransBitrate: "23"// 2:32K,3:48K,4:64K,5:80K,6:96K,7:128K,8:160K,9:192K,10:224K,11:256K,12:320K,13:384K,14:448K,15:512K,16:640K,17:768K,18:896K,19:1024K,20:1280K,21:1536K,22:1792K,23:2048K,24:3072K,25:4096K,26:8192K }; WebVideoCtrl.I_StartPlayback(szDeviceIdentify, { iRtspPort: iRtspPort, iStreamType: iStreamType, iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime, oTransCodeParam: oTransCodeParam, success: function () { szInfo = "start play back success!"; showOPInfo(szDeviceIdentify + " " + szInfo); }, error: function (status, xmlDoc) { if (403 === status) { szInfo = "Device do not support Websocket extracting the flow!"; } else { szInfo = "start play back failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } }); } else { WebVideoCtrl.I_StartPlayback(szDeviceIdentify, { iRtspPort: iRtspPort, iStreamType: iStreamType, iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime, success: function () { szInfo = "start play back success!"; showOPInfo(szDeviceIdentify + " " + szInfo); }, error: function (status, xmlDoc) { if (403 === status) { szInfo = "Device do not support Websocket extracting the flow!"; } else { szInfo = "start play back failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } }); } }; if (oWndInfo != null) {// stop play first WebVideoCtrl.I_Stop({ success: function () { startPlayback(); } }); } else { startPlayback(); } } // stop play back function clickStopPlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_Stop({ success: function () { szInfo = "stop play back success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "stop play back failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // start reverse play function clickReversePlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szDeviceIdentify = $("#ip").val(), iRtspPort = parseInt($("#rtspport").val(), 10), iStreamType = parseInt($("#record_streamtype").val(), 10), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iChannelID = parseInt($("#channels").val(), 10), szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(), szInfo = ""; if (null == szDeviceIdentify) { return; } if (bZeroChannel) {// zero-channel does not support reverse play return; } var reversePlayback = function () { var iRet = WebVideoCtrl.I_ReversePlayback(szDeviceIdentify, { iRtspPort: iRtspPort, iStreamType: iStreamType, iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime }); if (0 == iRet) { szInfo = "start reverse play success!"; } else { szInfo = "start reverse play failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); }; if (oWndInfo != null) {// stop play first WebVideoCtrl.I_Stop({ success: function () { reversePlayback(); } }); } else { reversePlayback(); } } // single frame function clickFrame() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_Frame({ success: function () { szInfo = "single frame play success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "single frame play failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // pause function clickPause() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_Pause({ success: function () { szInfo = "pause success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "pause failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // resume function clickResume() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_Resume({ success: function () { szInfo = "resume success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "resume failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // slow play function clickPlaySlow() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_PlaySlow({ success: function () { szInfo = "slow play success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "slow play failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // fast play function clickPlayFast() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { WebVideoCtrl.I_PlayFast({ success: function () { szInfo = "fast play success!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); }, error: function () { szInfo = "fast play failed!"; showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo); } }); } } // OSD time function clickGetOSDTime() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { var szTime = WebVideoCtrl.I_GetOSDTime({ success: function (szOSDTime) { $("#osdtime").val(szOSDTime); showOPInfo(oWndInfo.szDeviceIdentify + " get OSD time success!"); }, error: function () { showOPInfo(oWndInfo.szDeviceIdentify + " get OSD time failed!"); } }); } } // download video var g_iDownloadID = -1; var g_tDownloadProcess = 0; function clickStartDownloadRecord(i) { var szDeviceIdentify = $("#ip").val(), szChannelID = $("#channels").val(), szFileName = $("#downloadTd" + i).data("fileName"), szPlaybackURI = $("#downloadTd" + i).data("playbackURI"); if (null == szDeviceIdentify) { return; } g_iDownloadID = WebVideoCtrl.I_StartDownloadRecord(szDeviceIdentify, szPlaybackURI, szFileName, { bDateDir: true //generate the date file or not }); if (g_iDownloadID < 0) { var iErrorValue = WebVideoCtrl.I_GetLastError(); if (34 == iErrorValue) { showOPInfo(szDeviceIdentify + " download already!"); } else if (33 == iErrorValue) { showOPInfo(szDeviceIdentify + " lack of space!"); } else { showOPInfo(szDeviceIdentify + " download failed!"); } } else { $("
").appendTo("body"); g_tDownloadProcess = setInterval("downProcess(" + i + ")", 1000); } } function clickStartDownloadRecordByTime() { var szDeviceIdentify = $("#ip").val(), szChannelID = $("#channels").val(), szFileName = $("#downloadTd0").data("fileName"), szPlaybackURI = $("#downloadTd0").data("playbackURI"), szStartTime = $("#downloadstarttime").val(), szEndTime = $("#downloadendtime").val(); if (null == szDeviceIdentify) { return; } if (Date.parse(szEndTime.replace(/-/g, "/")) - Date.parse(szStartTime.replace(/-/g, "/")) < 0) { alert("starttime must earlier than endtime"); return; } g_iDownloadID = WebVideoCtrl.I_StartDownloadRecordByTime(szDeviceIdentify, szPlaybackURI, szFileName, szStartTime,szEndTime,{ bDateDir: true //是否生成日期文件 }); if (g_iDownloadID < 0) { var iErrorValue = WebVideoCtrl.I_GetLastError(); if (34 == iErrorValue) { showOPInfo(szDeviceIdentify + " Downloaded"); } else if (33 == iErrorValue) { showOPInfo(szDeviceIdentify + " No enough space"); } else { showOPInfo(szDeviceIdentify + " Download Failed!"); } } else { $("
").appendTo("body"); g_tDownloadProcess = setInterval("downProcess(" + 0 + ")", 1000); } } // download process function downProcess() { var iStatus = WebVideoCtrl.I_GetDownloadStatus(g_iDownloadID); if (0 == iStatus) { $("#downProcess").css({ width: $("#searchlist").width() + "px", height: "100px", lineHeight: "100px", left: $("#searchdiv").offset().left + "px", top: $("#searchdiv").offset().top + "px" }); var iProcess = WebVideoCtrl.I_GetDownloadProgress(g_iDownloadID); if (iProcess < 0) { clearInterval(g_tDownloadProcess); g_tDownloadProcess = 0; g_iDownloadID = -1; } else if (iProcess < 100) { $("#downProcess").text(iProcess + "%"); } else { $("#downProcess").text("100%"); setTimeout(function () { $("#downProcess").remove(); }, 1000); WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID); showOPInfo("video dowload finish"); clearInterval(g_tDownloadProcess); g_tDownloadProcess = 0; g_iDownloadID = -1; } } else { WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID); clearInterval(g_tDownloadProcess); g_tDownloadProcess = 0; g_iDownloadID = -1; } } // export configuration file function clickExportDeviceConfig() { var szDeviceIdentify = $("#ip").val(), szInfo = ""; if (null == szDeviceIdentify) { return; } var szDevicePassWord = $("#edfpassword").val(); var iRet = WebVideoCtrl.I_ExportDeviceConfig(szDeviceIdentify,szDevicePassWord); if (0 == iRet) { szInfo = " export configuration file success!"; } else { szInfo = " export configuration file failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } // import configuration file function clickImportDeviceConfig() { var szDeviceIdentify = $("#ip").val(), szFileName = $("#configFile").val(); var szDevicePassWord= $("#edfpassword").val(); if (null == szDeviceIdentify) { return; } if ("" == szFileName) { alert("please select configuration file!"); return; } var iRet = WebVideoCtrl.I_ImportDeviceConfig(szDeviceIdentify, szFileName,szDevicePassWord); if (0 == iRet) { WebVideoCtrl.I_Restart(szDeviceIdentify, { success: function (xmlDoc) { $("
reboot...
").appendTo("body"); var oSize = getWindowSize(); $("#restartDiv").css({ width: oSize.width + "px", height: oSize.height + "px", lineHeight: oSize.height + "px", left: 0, top: 0 }); setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " reboot failed!", status, xmlDoc); } }); } else { showOPInfo(szDeviceIdentify + " export failed!"); } } // reconnection function reconnect(szDeviceIdentify) { WebVideoCtrl.I_Reconnect(szDeviceIdentify, { success: function (xmlDoc) { $("#restartDiv").remove(); }, error: function (status, xmlDoc) { if (401 == status) {// no plug-in scheme,session invalid after restart,program log out,delete from the device which has logged in $("#restartDiv").remove(); clickLogout(); } else { setTimeout(function () {reconnect(szDeviceIdentify);}, 5000); } } }); } // start upgrade var g_tUpgrade = 0; function clickStartUpgrade(szDeviceIdentify) { var szDeviceIdentify = $("#ip").val(), szFileName = $("#upgradeFile").val(); if (null == szDeviceIdentify) { return; } if ("" == szFileName) { alert("please select upgrade file!"); return; } WebVideoCtrl.I2_StartUpgrade(szDeviceIdentify, szFileName).then(function(){ g_tUpgrade = setInterval("getUpgradeStatus('" + szDeviceIdentify + "')", 1000); },function(){ showOPInfo(szDeviceIdentify + " upgrade failed!"); }); } // get upgrade status function getUpgradeStatus(szDeviceIdentify) { var iStatus = WebVideoCtrl.I_UpgradeStatus(); if (iStatus == 0) { var iProcess = WebVideoCtrl.I_UpgradeProgress(); if (iProcess < 0) { clearInterval(g_tUpgrade); g_tUpgrade = 0; showOPInfo(szDeviceIdentify + " get process failed!"); return; } else if (iProcess < 100) { if (0 == $("#restartDiv").length) { $("
").appendTo("body"); var oSize = getWindowSize(); $("#restartDiv").css({ width: oSize.width + "px", height: oSize.height + "px", lineHeight: oSize.height + "px", left: 0, top: 0 }); } $("#restartDiv").text(iProcess + "%"); } else { WebVideoCtrl.I_StopUpgrade(); clearInterval(g_tUpgrade); g_tUpgrade = 0; $("#restartDiv").remove(); WebVideoCtrl.I_Restart(szDeviceIdentify, { success: function (xmlDoc) { $("
reboot...
").appendTo("body"); var oSize = getWindowSize(); $("#restartDiv").css({ width: oSize.width + "px", height: oSize.height + "px", lineHeight: oSize.height + "px", left: 0, top: 0 }); setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " reboot failed!", status, xmlDoc); } }); } } else if (iStatus == 1) { WebVideoCtrl.I_StopUpgrade(); showOPInfo(szDeviceIdentify + " upgrade failed!"); clearInterval(g_tUpgrade); g_tUpgrade = 0; } else if (iStatus == 2) { WebVideoCtrl.I_StopUpgrade(); showOPInfo(szDeviceIdentify + " language does not match!"); clearInterval(g_tUpgrade); g_tUpgrade = 0; } else { WebVideoCtrl.I_StopUpgrade(); showOPInfo(szDeviceIdentify + " get status failed!"); clearInterval(g_tUpgrade); g_tUpgrade = 0; } } // check plugin version function clickCheckPluginVersion() { var iRet = WebVideoCtrl.I_CheckPluginVersion(); if (0 == iRet) { alert("your plugin version is the latest!"); } else { alert("detect the latest plugin version!"); } } // remote configuration library function clickRemoteConfig() { var szDeviceIdentify = $("#ip").val(), iDevicePort = parseInt($("#deviceport").val(), 10) || "", szInfo = ""; if (null == szDeviceIdentify) { return; } var iRet = WebVideoCtrl.I_RemoteConfig(szDeviceIdentify, { iDevicePort: iDevicePort, iLan: 0 }); if (-1 == iRet) { szInfo = "call remote configuration library failed!"; } else { szInfo = "call remote configuration library success!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } function clickRestoreDefault() { var szDeviceIdentify = $("#ip").val(), szMode = "basic"; WebVideoCtrl.I_RestoreDefault(szDeviceIdentify, szMode, { timeout: 30000, success: function (xmlDoc) { $("#restartDiv").remove(); showOPInfo(szDeviceIdentify + " restore default success!"); //reboot after restore WebVideoCtrl.I_Restart(szDeviceIdentify, { success: function (xmlDoc) { $("
reboot...
").appendTo("body"); var oSize = getWindowSize(); $("#restartDiv").css({ width: oSize.width + "px", height: oSize.height + "px", lineHeight: oSize.height + "px", left: 0, top: 0 }); setTimeout("reconnect('" + szDeviceIdentify + "')", 20000); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " reboot failed!", status, xmlDoc); } }); }, error: function (status, xmlDoc) { showOPInfo(szDeviceIdentify + " restore default failed!", status, xmlDoc); } }); } function PTZZoomIn() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(10, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Zoom+success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Zoom+failed!", status, xmlDoc); } }); } } function PTZZoomout() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(11, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Zoom-success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Zoom-failed!", status, xmlDoc); } }); } } function PTZZoomStop() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(11, true, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop zoom success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop zoom failed!", status, xmlDoc); } }); } } function PTZFocusIn() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(12, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " focus+success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " focus+failed!", status, xmlDoc); } }); } } function PTZFoucusOut() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(13, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " focus-success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " focus-failed!", status, xmlDoc); } }); } } function PTZFoucusStop() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(12, true, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop focus success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop focus failed!", status, xmlDoc); } }); } } function PTZIrisIn() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(14, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Iris+success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Iris+failed!", status, xmlDoc); } }); } } function PTZIrisOut() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(15, false, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Iris-success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " Iris-failed!", status, xmlDoc); } }); } } function PTZIrisStop() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(14, true, { iWndIndex: g_iWndIndex, success: function (xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop Iris success!"); }, error: function (status, xmlDoc) { showOPInfo(oWndInfo.szDeviceIdentify + " stop Iris failed!", status, xmlDoc); } }); } } // change mode function changeIPMode(iType) { var arrPort = [0, 7071, 80]; $("#serverport").val(arrPort[iType]); } // get device ip function clickGetDeviceIP() { var iDeviceMode = parseInt($("#devicemode").val(), 10), szAddress = $("#serveraddress").val(), iPort = parseInt($("#serverport").val(), 10) || 0, szDeviceID = $("#deviceid").val(), szDeviceInfo = ""; szDeviceInfo = WebVideoCtrl.I_GetIPInfoByMode(iDeviceMode, szAddress, iPort, szDeviceID); if ("" == szDeviceInfo) { showOPInfo("get device ip failed!"); } else { showOPInfo("get device ip success!"); var arrTemp = szDeviceInfo.split("-"); $("#loginip").val(arrTemp[0]); $("#deviceport").val(arrTemp[1]); } } // polygon drawing enabled var g_bEnableDraw = false; function clickEnableDraw() { var iRet = WebVideoCtrl.I_SetPlayModeType(6);// polygon pattern if (0 === iRet) { g_bEnableDraw = true; showOPInfo("drawing enabled succeed!"); } else { showOPInfo("drawing enabled failed!"); } } // polygon drawing disabled function clickDisableDraw() { var iRet = WebVideoCtrl.I_SetPlayModeType(0);// preview pattern if (0 === iRet) { g_bEnableDraw = false; showOPInfo("drawing disabled success!"); } else { showOPInfo("drawing disabled failed!"); } } // add the graph function clickAddSnapPolygon() { if (!g_bEnableDraw) { return; } var szId = $("#snapId").val(); var szName = encodeString($("#snapName").val()); var szInfo = ""; szInfo += ""; szInfo += ""; szInfo += "" + szId + ""; // [1, 32] szInfo += "1"; szInfo += "17"; // [MinClosed, 17] szInfo += "4"; // [4, 17] szInfo += "#" + szId + "#" + szName + ""; szInfo += "false"; szInfo += "02550"; szInfo += ""; szInfo += ""; szInfo += ""; var iRet = WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo); if (0 === iRet) { showOPInfo("window " + g_iWndIndex + " add graph succeed!"); } else if (-1 === iRet) { showOPInfo("window " + g_iWndIndex + " add graph failed!"); } else if (-2 === iRet) { alert("Parameter error!"); } else if (-3 === iRet) { alert("The number of grapg reaches the ceiling!"); } else if (-4 === iRet) { alert("Graph ID has existed!"); } WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 2); } // delete the graph function clickDelSnapPolygon() { if (!g_bEnableDraw) { return; } var szId = $("#snapId").val(); var iIndex = getSnapPolygon(szId); if (iIndex != -1) { var oXML = getSnapPolygon(); $(oXML).find("SnapPolygon").eq(iIndex).remove(); var szInfo = toXMLStr(oXML); WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); WebVideoCtrl.I2_SetSnapPolygonInfo(g_iWndIndex, szInfo); WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 3); } else { alert("Graph ID do not exist!"); } } // edit the graph function clickEditSnapPolygon() { if (!g_bEnableDraw) { return; } var iRet = WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 3); if (0 === iRet) { showOPInfo("window " + g_iWndIndex + " edit graph succeed!"); } else { showOPInfo("window " + g_iWndIndex + " edit graph failed!"); } } // stop editing function clickStopSnapPolygon() { if (!g_bEnableDraw) { return; } var iRet = WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, -1); if (0 === iRet) { showOPInfo("window " + g_iWndIndex + " stop editing succeed!"); } else { showOPInfo("window " + g_iWndIndex + " stop editing failed!"); } } function getSnapPolygon(szId) { var szInfo = WebVideoCtrl.I_GetSnapPolygonInfo(g_iWndIndex); var oXML = loadXML(szInfo); if (typeof szId === "undefined") { return oXML; } else { var iIndex = -1; var aNodeList = $(oXML).find("SnapPolygon"); if (aNodeList.length > 0) { $.each(aNodeList, function (i) { if ($(this).find("id").text() === szId) { iIndex = i; return false; } }); } return iIndex; } } // gain the graph,save to own database function clickGetSnapPolygon() { if (!g_bEnableDraw) { return; } var szInfo = WebVideoCtrl.I_GetSnapPolygonInfo(g_iWndIndex); alert(szInfo); } // set the graph,you can set the graph which has been set before when opening the page function clickSetSnapPolygon() { if (!g_bEnableDraw) { return; } WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); var szInfo = ""; szInfo += ""; szInfo += ""; szInfo += "1"; szInfo += "1"; szInfo += "#1#Set1"; szInfo += "true"; szInfo += "02550"; szInfo += ""; szInfo += "0.7379030.229730"; szInfo += "0.9475810.804054"; szInfo += "0.3629030.777027"; szInfo += ""; szInfo += ""; szInfo += ""; szInfo += "2"; szInfo += "1"; szInfo += "#2#Set2"; szInfo += "true"; szInfo += "02550"; szInfo += ""; szInfo += "0.4516130.216216"; szInfo += "0.4475810.729730"; szInfo += "0.1169350.554054"; szInfo += ""; szInfo += ""; szInfo += ""; var iRet = WebVideoCtrl.I2_SetSnapPolygonInfo(g_iWndIndex, szInfo); if (0 === iRet) { showOPInfo("window " + g_iWndIndex + " set the graph succeed!"); } else if (-1 === iRet) { showOPInfo("window " + g_iWndIndex + " set the graph failed!"); } else if (-2 === iRet) { alert("Parameter error!"); } else if (-3 === iRet) { alert("The number of grapg reaches the ceiling!"); } else if (-4 === iRet) { alert("Graph ID has existed!"); } } // clear the graph function clickDelAllSnapPolygon() { if (!g_bEnableDraw) { return; } var iRet = WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex); if (0 === iRet) { showOPInfo("window " + g_iWndIndex + " empty the graph succeed!"); } else { showOPInfo("window " + g_iWndIndex + " empty the graph failed!"); } } // device capturing function clickDeviceCapturePic() { var szInfo = ""; var szDeviceIdentify = $("#ip").val(); var bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false; var iChannelID = parseInt($("#channels").val(), 10); var iResolutionWidth = parseInt($("#resolutionWidth").val(), 10); var iResolutionHeight = parseInt($("#resolutionHeight").val(), 10); if (null == szDeviceIdentify) { return; } if (bZeroChannel) {// zero channel do not support device capturing return; } var szPicName = szDeviceIdentify + "_" + iChannelID + "_" + new Date().getTime(); var iRet = WebVideoCtrl.I_DeviceCapturePic(szDeviceIdentify, iChannelID, szPicName, { bDateDir: true, //generate the date file or not iResolutionWidth: iResolutionWidth, iResolutionHeight: iResolutionHeight }); if (0 == iRet) { szInfo = "device capturing succeed!"; } else { szInfo = "device capturing failed!"; } showOPInfo(szDeviceIdentify + " " + szInfo); } function loadXML(szXml) { if(null == szXml || "" == szXml) { return null; } var oXmlDoc = null; if (window.DOMParser) { var oParser = new DOMParser(); oXmlDoc = oParser.parseFromString(szXml, "text/xml"); } else { oXmlDoc = new ActiveXObject("Microsoft.XMLDOM"); oXmlDoc.async = false; oXmlDoc.loadXML(szXml); } return oXmlDoc; } function toXMLStr(oXmlDoc) { var szXmlDoc = ""; try { var oSerializer = new XMLSerializer(); szXmlDoc = oSerializer.serializeToString(oXmlDoc); } catch (e) { try { szXmlDoc = oXmlDoc.xml; } catch (e) { return ""; } } if (szXmlDoc.indexOf("" + szXmlDoc; } return szXmlDoc; } function encodeString(str) { if (str) { return str.replace(/&/g, '&').replace(//g, '>'); } else { return ""; } }