html调用内网海康威视摄像头

您所在的位置:网站首页 谷歌浏览器允许调用摄像头 html调用内网海康威视摄像头

html调用内网海康威视摄像头

2023-06-03 21:03| 来源: 网络整理| 查看: 265

html调用内网海康威视摄像头 我的需求很简单就是在html的主页上用iframe加载出摄像头,海康威视的摄像头无法直接调用,必须安装海康提供的web插件包,使用插件的demo是可以调用的,但是单独搞出来又无法使用,所以直接在原来的demo里加入js,使他自行加载以来显示页面,显示出来就可以进行iframe了。

html:

document.write(""); 设备IP解析 模式 IPServer HiDDNS 服务器地址 端口号 设备标识 ; 登录 IP地址 端口号 用户名 密码 设备端口 (可选参数) 窗口分割数; 1x1 2x2 3x3 4x4 已登录设备 通道列表 数字通道 本地配置 播放性能 最短延时 实时性好 均衡 流畅性好 图像尺寸 充满 4:3 16:9 规则信息 启用 禁用 抓图文件格式 JPEG BMP 录像文件打包大小 256M 512M 1G 协议类型 TCP UDP 录像文件保存路径 ; 回放下载保存路径 ; 预览抓图保存路径 ; 回放抓图保存路径 ; 回放剪辑保存路径 ; ; 预览 码流类型 主码流 子码流 第三码流 转码码流 音量 ;(范围:0~100) 对讲通道 云台控制 云台速度 1 2 3 4 5 6 7 预置点号 回放 开始时间 (时间格式:2013-11-11 12:34:56) 结束时间 ;启用转码码流 ; 系统维护 ;; ;; 操作信息 事件回调信息

js:

// 初始化插件 // 全局保存当前选中窗口 var g_iWndIndex = 0; //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口 $(function () { // 检查插件是否已经安装过 if (-1 == WebVideoCtrl.I_CheckPluginInstall()) { alert("您还未安装过插件,双击开发包目录里的WebComponents.exe安装!"); return; } // 初始化插件参数及插入插件 WebVideoCtrl.I_InitPlugin(500, 300, { iWndowType: 2, cbSelWnd: function (xmlDoc) { g_iWndIndex = $(xmlDoc).find("SelectWnd").eq(0).text(); var szInfo = "当前选择的窗口编号:" + g_iWndIndex; showCBInfo(szInfo); } }); WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin"); // 检查插件是否最新 if (-1 == WebVideoCtrl.I_CheckPluginVersion()) { alert("检测到新的插件版本,双击开发包目录里的WebComponents.exe升级!"); return; } // 窗口事件绑定 $(window).bind({ resize: function () { var $Restart = $("#restartDiv"); if ($Restart.length > 0) { var oSize = getWindowSize(); $Restart.css({ width: oSize.width + "px", height: oSize.height + "px" }); } } }); //初始化日期时间 var szCurTime = dateFormat(new Date(), "yyyy-MM-dd"); $("#starttime").val(szCurTime + " 00:00:00"); $("#endtime").val(szCurTime + " 23:59:59"); }); // 显示操作信息 function showOPInfo(szInfo) { szInfo = "" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + ""; $("#opinfo").html(szInfo + $("#opinfo").html()); } // 显示回调信息 function showCBInfo(szInfo) { szInfo = "" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + ""; $("#cbinfo").html(szInfo + $("#cbinfo").html()); } // 格式化时间 function dateFormat(oDate, fmt) { var o = { "M+": oDate.getMonth() + 1, //月份 "d+": oDate.getDate(), //日 "h+": oDate.getHours(), //小时 "m+": oDate.getMinutes(), //分 "s+": oDate.getSeconds(), //秒 "q+": Math.floor((oDate.getMonth() + 3) / 3), //季度 "S": oDate.getMilliseconds()//毫秒 }; 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; } // 获取窗口尺寸 function getWindowSize() { var nWidth = $(this).width() + $(this).scrollLeft(), nHeight = $(this).height() + $(this).scrollTop(); return {width: nWidth, height: nHeight}; } // 打开选择框 0:文件夹 1:文件 function clickOpenFileDlg(id, iType) { var szDirPath = WebVideoCtrl.I_OpenFileDlg(iType); if (szDirPath != -1 && szDirPath != "" && szDirPath != null) { $("#" + id).val(szDirPath); } } // 获取本地参数 function clickGetLocalCfg() { var xmlDoc = WebVideoCtrl.I_GetLocalCfg(); $("#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()); $("#playbackFilePath").val($(xmlDoc).find("PlaybackFilePath").eq(0).text()); $("#protocolType").val($(xmlDoc).find("ProtocolType").eq(0).text()); showOPInfo("本地配置获取成功!"); } // 设置本地参数 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("" + $("#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 = "本地配置设置成功!"; } else { szInfo = "本地配置设置失败!"; } showOPInfo(szInfo); } // 窗口分割数 function changeWndNum(iType) { iType = parseInt(1, 10);//修改 WebVideoCtrl.I_ChangeWndNum(iType); } // 登录 function clickLogin() { /*var szIP = $("#loginip").val(), szPort = $("#port").val(), szUsername = $("#username").val(), szPassword = $("#password").val(); */ var szIP = "172.17.136.8",//修改 szPort = '80',//修改 szUsername = 'admin',//修改 szPassword = 'jj123456';//修改 if ("" == szIP || "" == szPort) { return; } //修改 var iRet = WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, { success: function (xmlDoc) { // console.log('登录成功 1122'); showOPInfo(szIP + " 登录成功!"); $("#ip").prepend("" + szIP + ""); setTimeout(function () { $("#ip").val(szIP); getChannelInfo(); }, 10); }, error: function () { // console.log('登录失败 1122'); showOPInfo(szIP + " 登录失败!"); } }); if (-1 == iRet) { showOPInfo(szIP + " 已登录过!"); } setTimeout(function () { clickStartRealPlay(); }, 5000); } // 退出 function clickLogout() { var szIP = $("#ip").val(), szInfo = ""; if (szIP == "") { return; } var iRet = WebVideoCtrl.I_Logout(szIP); if (0 == iRet) { szInfo = "退出成功!"; $("#ip option[value='" + szIP + "']").remove(); getChannelInfo(); } else { szInfo = "退出失败!"; } showOPInfo(szIP + " " + szInfo); } // 获取设备信息 function clickGetDeviceInfo() { var szIP = $("#ip").val(); if ("" == szIP) { return; } WebVideoCtrl.I_GetDeviceInfo(szIP, { success: function (xmlDoc) { var arrStr = []; arrStr.push("设备名称:" + $(xmlDoc).find("deviceName").eq(0).text() + "\r\n"); arrStr.push("设备ID:" + $(xmlDoc).find("deviceID").eq(0).text() + "\r\n"); arrStr.push("型号:" + $(xmlDoc).find("model").eq(0).text() + "\r\n"); arrStr.push("设备序列号:" + $(xmlDoc).find("serialNumber").eq(0).text() + "\r\n"); arrStr.push("MAC地址:" + $(xmlDoc).find("macAddress").eq(0).text() + "\r\n"); arrStr.push("主控版本:" + $(xmlDoc).find("firmwareVersion").eq(0).text() + " " + $(xmlDoc).find("firmwareReleasedDate").eq(0).text() + "\r\n"); arrStr.push("编码版本:" + $(xmlDoc).find("encoderVersion").eq(0).text() + " " + $(xmlDoc).find("encoderReleasedDate").eq(0).text() + "\r\n"); showOPInfo(szIP + " 获取设备信息成功!"); alert(arrStr.join("")); }, error: function () { showOPInfo(szIP + " 获取设备信息失败!"); } }); } // 获取通道 function getChannelInfo() { var szIP = $("#ip").val(), oSel = $("#channels").empty(), nAnalogChannel = 0; if ("" == szIP) { return; } // 模拟通道 WebVideoCtrl.I_GetAnalogChannelInfo(szIP, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("VideoInputChannel"); nAnalogChannel = oChannels.length; $.each(oChannels, function (i) { var id = parseInt($(this).find("id").eq(0).text(), 10), name = $(this).find("name").eq(0).text(); if ("" == name) { name = "Camera " + (id < 9 ? "0" + id : id); } oSel.append("" + name + ""); }); showOPInfo(szIP + " 获取模拟通道成功!"); }, error: function () { showOPInfo(szIP + " 获取模拟通道失败!"); } }); console.log(szIP,oSel,nAnalogChannel); // 数字通道 WebVideoCtrl.I_GetDigitalChannelInfo(szIP, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("InputProxyChannelStatus"); $.each(oChannels, function (i) { var id = parseInt($(this).find("id").eq(0).text(), 10), name = $(this).find("name").eq(0).text(), online = $(this).find("online").eq(0).text(); if ("false" == online) {// 过滤禁用的数字通道 return true; } if ("" == name) { name = "IPCamera " + ((id - nAnalogChannel) < 9 ? "0" + (id - nAnalogChannel) : (id - nAnalogChannel)); } oSel.append("" + name + ""); }); showOPInfo(szIP + " 获取数字通道成功!"); }, error: function () { showOPInfo(szIP + " 获取数字通道失败!"); } }); // 零通道 WebVideoCtrl.I_GetZeroChannelInfo(szIP, { async: false, success: function (xmlDoc) { var oChannels = $(xmlDoc).find("ZeroVideoChannel"); $.each(oChannels, function (i) { var id = parseInt($(this).find("id").eq(0).text(), 10), name = $(this).find("name").eq(0).text(); if ("" == name) { name = "Zero Channel " + (id < 9 ? "0" + id : id); } if ("true" == $(this).find("enabled").eq(0).text()) {// 过滤禁用的零通道 oSel.append("" + name + ""); } }); showOPInfo(szIP + " 获取零通道成功!"); }, error: function () { showOPInfo(szIP + " 获取零通道失败!"); } }); } // 获取数字通道 function clickGetDigitalChannelInfo() { var szIP = $("#ip").val(), iAnalogChannelNum = 0; $("#digitalchannellist").empty(); if ("" == szIP) { return; } // 模拟通道 WebVideoCtrl.I_GetAnalogChannelInfo(szIP, { async: false, success: function (xmlDoc) { iAnalogChannelNum = $(xmlDoc).find("VideoInputChannel").length; }, error: function () { } }); // 数字通道 WebVideoCtrl.I_GetDigitalChannelInfo(szIP, { 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 ? "在线" : "离线"; objTd = objTr.insertCell(5); objTd.width = "25%"; objTd.innerHTML = proxyProtocol; }); showOPInfo(szIP + " 获取数字通道成功!"); }, error: function () { showOPInfo(szIP + " 没有数字通道!"); } }); } // 开始预览 function clickStartRealPlay() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szIP = '172.17.136.8',streamtype//修改ip iStreamType = parseInt(3, 10),//通道//修改 1主 2子 3第三 4其他 iChannelID = 1, bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, szInfo = ""; if ("" == szIP) { return; } // console.log('开始预览 --**',oWndInfo,szIP,iStreamType,iChannelID,bZeroChannel); if (oWndInfo != null) {// 已经在播放了,先停止 WebVideoCtrl.I_Stop(); } var iRet = WebVideoCtrl.I_StartRealPlay(szIP, { iStreamType: iStreamType, iChannelID: iChannelID, bZeroChannel: bZeroChannel }); console.log(szIP, { iStreamType: iStreamType, iChannelID: iChannelID, bZeroChannel: bZeroChannel },'citrix',iRet); if (0 == iRet) { szInfo = "开始预览成功!"; } else { szInfo = "开始预览失败!"; } showOPInfo(szIP + " " + szInfo); } // 停止预览 function clickStopRealPlay() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Stop(); if (0 == iRet) { szInfo = "停止预览成功!"; } else { szInfo = "停止预览失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 打开声音 function clickOpenSound() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var allWndInfo = WebVideoCtrl.I_GetWindowStatus(); // 循环遍历所有窗口,如果有窗口打开了声音,先关闭 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 = "打开声音成功!"; } else { szInfo = "打开声音失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 关闭声音 function clickCloseSound() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_CloseSound(); if (0 == iRet) { szInfo = "关闭声音成功!"; } else { szInfo = "关闭声音失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 设置音量 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 = "音量设置成功!"; } else { szInfo = "音量设置失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 抓图 function clickCapturePic() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var szChannelID = $("#channels").val(), szPicName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(), iRet = WebVideoCtrl.I_CapturePic(szPicName); if (0 == iRet) { szInfo = "抓图成功!"; } else { szInfo = "抓图失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 开始录像 function clickStartRecord() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var szChannelID = $("#channels").val(), szFileName = oWndInfo.szIP + "_" + szChannelID + "_" + new Date().getTime(), iRet = WebVideoCtrl.I_StartRecord(szFileName); if (0 == iRet) { szInfo = "开始录像成功!"; } else { szInfo = "开始录像失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 停止录像 function clickStopRecord() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_StopRecord(); if (0 == iRet) { szInfo = "停止录像成功!"; } else { szInfo = "停止录像失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 获取对讲通道 function clickGetAudioInfo() { var szIP = $("#ip").val(); if ("" == szIP) { return; } WebVideoCtrl.I_GetAudioInfo(szIP, { success: function (xmlDoc) { var oAudioChannels = $(xmlDoc).find("TwoWayAudioChannel"), oSel = $("#audiochannels").empty(); $.each(oAudioChannels, function () { var id = $(this).find("id").eq(0).text(); oSel.append("" + id + ""); }); showOPInfo(szIP + " 获取对讲通道成功!"); }, error: function () { showOPInfo(szIP + " 获取对讲通道失败!"); } }); } // 开始对讲 function clickStartVoiceTalk() { var szIP = $("#ip").val(), iAudioChannel = parseInt($("#audiochannels").val(), 10), szInfo = ""; if ("" == szIP) { return; } if (isNaN(iAudioChannel)){ alert("请选择对讲通道!"); return; } var iRet = WebVideoCtrl.I_StartVoiceTalk(szIP, iAudioChannel); if (0 == iRet) { szInfo = "开始对讲成功!"; } else { szInfo = "开始对讲失败!"; } showOPInfo(szIP + " " + szInfo); } // 停止对讲 function clickStopVoiceTalk() { var szIP = $("#ip").val(), iRet = WebVideoCtrl.I_StopVoiceTalk(), szInfo = ""; if ("" == szIP) { return; } if (0 == iRet) { szInfo = "停止对讲成功!"; } else { szInfo = "停止对讲失败!"; } showOPInfo(szIP + " " + szInfo); } // 启用电子放大 function clickEnableEZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_EnableEZoom(); if (0 == iRet) { szInfo = "启用电子放大成功!"; } else { szInfo = "启用电子放大失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 禁用电子放大 function clickDisableEZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_DisableEZoom(); if (0 == iRet) { szInfo = "禁用电子放大成功!"; } else { szInfo = "禁用电子放大失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 启用3D放大 function clickEnable3DZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Enable3DZoom(); if (0 == iRet) { szInfo = "启用3D放大成功!"; } else { szInfo = "启用3D放大失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 禁用3D放大 function clickDisable3DZoom() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Disable3DZoom(); if (0 == iRet) { szInfo = "禁用3D放大成功!"; } else { szInfo = "禁用3D放大失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 全屏 function clickFullScreen() { WebVideoCtrl.I_FullScreen(true); } // PTZ控制 9为自动,1,2,3,4,5,6,7,8为方向PTZ 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(), bStop = false; if (bZeroChannel) {// 零通道不支持云台 return; } if (oWndInfo != null) { if (9 == iPTZIndex && g_bPTZAuto) { iPTZSpeed = 0;// 自动开启后,速度置为0可以关闭自动 bStop = true; } else { g_bPTZAuto = false;// 点击其他方向,自动肯定会被关闭 bStop = false; } WebVideoCtrl.I_PTZControl(iPTZIndex, bStop, { iPTZSpeed: iPTZSpeed, success: function (xmlDoc) { if (9 == iPTZIndex) { g_bPTZAuto = !g_bPTZAuto; } showOPInfo(oWndInfo.szIP + " 开启云台成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 开启云台失败!"); } }); } } // 方向PTZ停止 function mouseUpPTZControl() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { WebVideoCtrl.I_PTZControl(1, true, { success: function (xmlDoc) { showOPInfo(oWndInfo.szIP + " 停止云台成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 停止云台失败!"); } }); } } // 设置预置点 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.szIP + " 设置预置点成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 设置预置点失败!"); } }); } } // 调用预置点 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.szIP + " 调用预置点成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 调用预置点失败!"); } }); } } // 搜索录像 var iSearchTimes = 0; function clickRecordSearch(iType) { var szIP = $("#ip").val(), iChannelID = $("#channels").val(), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(); if ("" == szIP) { return; } if (bZeroChannel) {// 零通道不支持录像搜索 return; } if (0 == iType) {// 首次搜索 $("#searchlist").empty(); iSearchTimes = 0; } WebVideoCtrl.I_RecordSearch(szIP, iChannelID, szStartTime, szEndTime, { iSearchPos: 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 = 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 = "下载"; $("#downloadTd" + i).data("playbackURI", szPlaybackURI); } iSearchTimes++; clickRecordSearch(1);// 继续搜索 } 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 = 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 = "下载"; $("#downloadTd" + i).data("playbackURI", szPlaybackURI); } showOPInfo(szIP + " 搜索录像文件成功!"); } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) { setTimeout(function() { showOPInfo(szIP + " 没有录像文件!"); }, 50); } }, error: function () { showOPInfo(szIP + " 搜索录像文件失败!"); } }); } // 开始回放 function clickStartPlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szIP = $("#ip").val(), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iChannelID = $("#channels").val(), szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(), szInfo = "", bChecked = $("#transstream").prop("checked"), iRet = -1; if ("" == szIP) { return; } if (bZeroChannel) {// 零通道不支持回放 return; } if (oWndInfo != null) {// 已经在播放了,先停止 WebVideoCtrl.I_Stop(); } if (bChecked) {// 启用转码回放 var oTransCodeParam = { TransFrameRate: "16",// 0:全帧率,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 }; iRet = WebVideoCtrl.I_StartPlayback(szIP, { iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime, oTransCodeParam: oTransCodeParam }); } else { iRet = WebVideoCtrl.I_StartPlayback(szIP, { iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime }); } if (0 == iRet) { szInfo = "开始回放成功!"; } else { szInfo = "开始回放失败!"; } showOPInfo(szIP + " " + szInfo); } // 停止回放 function clickStopPlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Stop(); if (0 == iRet) { szInfo = "停止回放成功!"; } else { szInfo = "停止回放失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 开始倒放 function clickReversePlayback() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szIP = $("#ip").val(), bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false, iChannelID = $("#channels").val(), szStartTime = $("#starttime").val(), szEndTime = $("#endtime").val(), szInfo = ""; if ("" == szIP) { return; } if (bZeroChannel) {// 零通道不支持回放 return; } if (oWndInfo != null) {// 已经在播放了,先停止 WebVideoCtrl.I_Stop(); } var iRet = WebVideoCtrl.I_ReversePlayback(szIP, { iChannelID: iChannelID, szStartTime: szStartTime, szEndTime: szEndTime }); if (0 == iRet) { szInfo = "开始倒放成功!"; } else { szInfo = "开始倒放失败!"; } showOPInfo(szIP + " " + szInfo); } // 单帧 function clickFrame() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Frame(); if (0 == iRet) { szInfo = "单帧播放成功!"; } else { szInfo = "单帧播放失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 暂停 function clickPause() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Pause(); if (0 == iRet) { szInfo = "暂停成功!"; } else { szInfo = "暂停失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 恢复 function clickResume() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_Resume(); if (0 == iRet) { szInfo = "恢复成功!"; } else { szInfo = "恢复失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 慢放 function clickPlaySlow() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_PlaySlow(); if (0 == iRet) { szInfo = "慢放成功!"; } else { szInfo = "慢放失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // 快放 function clickPlayFast() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex), szInfo = ""; if (oWndInfo != null) { var iRet = WebVideoCtrl.I_PlayFast(); if (0 == iRet) { szInfo = "快放成功!"; } else { szInfo = "快放失败!"; } showOPInfo(oWndInfo.szIP + " " + szInfo); } } // OSD时间 function clickGetOSDTime() { var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex); if (oWndInfo != null) { var szTime = WebVideoCtrl.I_GetOSDTime(); if (szTime != -1) { $("#osdtime").val(szTime); showOPInfo(oWndInfo.szIP + " 获取OSD时间成功!"); } else { showOPInfo(oWndInfo.szIP + " 获取OSD时间失败!"); } } } // 下载录像 var iDownloadID = -1; var tDownloadProcess = 0; function clickStartDownloadRecord(i) { var szIP = $("#ip").val(), szChannelID = $("#channels").val(), szFileName = szIP + "_" + szChannelID + "_" + new Date().getTime(), szPlaybackURI = $("#downloadTd" + i).data("playbackURI"); if ("" == szIP) { return; } iDownloadID = WebVideoCtrl.I_StartDownloadRecord(szIP, szPlaybackURI, szFileName); if (iDownloadID < 0) { var iErrorValue = WebVideoCtrl.I_GetLastError(); if (34 == iErrorValue) { showOPInfo(szIP + " 已下载!"); } else if (33 == iErrorValue) { showOPInfo(szIP + " 空间不足!"); } else { showOPInfo(szIP + " 下载失败!"); } } else { $("").appendTo("body"); tDownloadProcess = setInterval("downProcess(" + i + ")", 1000); } } // 下载进度 function downProcess() { var iStatus = WebVideoCtrl.I_GetDownloadStatus(iDownloadID); if (0 == iStatus) { $("#downProcess").css({ width: $("#searchlist").width() + "px", height: "100px", lineHeight: "100px", left: $("#searchlist").offset().left + "px", top: $("#searchlist").offset().top + "px" }); var iProcess = WebVideoCtrl.I_GetDownloadProgress(iDownloadID); if (iProcess < 0) { clearInterval(tDownloadProcess); tDownloadProcess = 0; m_iDownloadID = -1; } else if (iProcess < 100) { $("#downProcess").text(iProcess + "%"); } else { $("#downProcess").text("100%"); setTimeout(function () { $("#downProcess").remove(); }, 1000); WebVideoCtrl.I_StopDownloadRecord(iDownloadID); showOPInfo("录像下载完成"); clearInterval(tDownloadProcess); tDownloadProcess = 0; m_iDownloadID = -1; } } else { WebVideoCtrl.I_StopDownloadRecord(iDownloadID); clearInterval(tDownloadProcess); tDownloadProcess = 0; iDownloadID = -1; } } // 导出配置文件 function clickExportDeviceConfig() { var szIP = $("#ip").val(), szInfo = ""; if ("" == szIP) { return; } var iRet = WebVideoCtrl.I_ExportDeviceConfig(szIP); if (0 == iRet) { szInfo = "导出配置文件成功!"; } else { szInfo = "导出配置文件失败!"; } showOPInfo(szIP + " " + szInfo); } // 导入配置文件 function clickImportDeviceConfig() { var szIP = $("#ip").val(), szFileName = $("#configFile").val(); if ("" == szIP) { return; } if ("" == szFileName) { alert("请选择配置文件!"); return; } var iRet = WebVideoCtrl.I_ImportDeviceConfig(szIP, szFileName); if (0 == iRet) { WebVideoCtrl.I_Restart(szIP, { success: function (xmlDoc) { $("重启中...").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('" + szIP + "')", 20000); }, error: function () { showOPInfo(szIP + " 重启失败!"); } }); } else { showOPInfo(szIP + " 导入失败!"); } } // 重连 function reconnect(szIP) { WebVideoCtrl.I_Reconnect(szIP, { success: function (xmlDoc) { $("#restartDiv").remove(); }, error: function () { setTimeout(function () {reconnect(szIP);}, 5000); } }); } // 开始升级 m_tUpgrade = 0; function clickStartUpgrade(szIP) { var szIP = $("#ip").val(), szFileName = $("#upgradeFile").val(); if ("" == szIP) { return; } if ("" == szFileName) { alert("请选择升级文件!"); return; } var iRet = WebVideoCtrl.I_StartUpgrade(szIP, szFileName); if (0 == iRet) { m_tUpgrade = setInterval("getUpgradeStatus('" + szIP + "')", 1000); } else { showOPInfo(szIP + " 升级失败!"); } } // 获取升级状态 function getUpgradeStatus(szIP) { var iStatus = WebVideoCtrl.I_UpgradeStatus(); if (iStatus == 0) { var iProcess = WebVideoCtrl.I_UpgradeProgress(); if (iProcess < 0) { clearInterval(m_tUpgrade); m_tUpgrade = 0; showOPInfo(szIP + " 获取进度失败!"); 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(m_tUpgrade); m_tUpgrade = 0; $("#restartDiv").remove(); WebVideoCtrl.I_Restart(szIP, { success: function (xmlDoc) { $("重启中...").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('" + szIP + "')", 20000); }, error: function () { showOPInfo(szIP + " 重启失败!"); } }); } } else if (iStatus == 1) { WebVideoCtrl.I_StopUpgrade(); showOPInfo(szIP + " 升级失败!"); clearInterval(m_tUpgrade); m_tUpgrade = 0; } else if (iStatus == 2) { mWebVideoCtrl.I_StopUpgrade(); showOPInfo(szIP + " 语言不匹配!"); clearInterval(m_tUpgrade); m_tUpgrade = 0; } else { mWebVideoCtrl.I_StopUpgrade(); showOPInfo(szIP + " 获取状态失败!"); clearInterval(m_tUpgrade); m_tUpgrade = 0; } } // 检查插件版本 function clickCheckPluginVersion() { var iRet = WebVideoCtrl.I_CheckPluginVersion(); if (0 == iRet) { alert("您的插件版本已经是最新的!"); } else { alert("检测到新的插件版本!"); } } // 远程配置库 function clickRemoteConfig() { var szIP = $("#ip").val(), iDevicePort = parseInt($("#deviceport").val(), 10) || "", szInfo = ""; if ("" == szIP) { return; } var iRet = WebVideoCtrl.I_RemoteConfig(szIP, { iDevicePort: iDevicePort, iLan: 1 }); if (-1 == iRet) { szInfo = "调用远程配置库失败!"; } else { szInfo = "调用远程配置库成功!"; } showOPInfo(szIP + " " + szInfo); } function clickRestoreDefault() { var szIP = $("#ip").val(), szMode = "basic"; WebVideoCtrl.I_RestoreDefault(szIP, szMode, { success: function (xmlDoc) { $("#restartDiv").remove(); showOPInfo(szIP + " 恢复默认参数成功!"); //恢复完成后需要重启 WebVideoCtrl.I_Restart(szIP, { success: function (xmlDoc) { $("重启中...").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('" + szIP + "')", 20000); }, error: function () { showOPInfo(szIP + " 重启失败!"); } }); }, error: function () { showOPInfo(szIP + " 恢复默认参数失败!"); } }); } 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.szIP + " 调焦+成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 调焦+失败!"); } }); } } 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.szIP + " 调焦-成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 调焦-失败!"); } }); } } 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.szIP + " 调焦停止成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 调焦停止失败!"); } }); } } 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.szIP + " 聚焦+成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 聚焦+失败!"); } }); } } 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.szIP + " 聚焦-成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 聚焦-失败!"); } }); } } 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.szIP + " 聚焦停止成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 聚焦停止失败!"); } }); } } 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.szIP + " 光圈+成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 光圈+失败!"); } }); } } 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.szIP + " 光圈-成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 光圈-失败!"); } }); } } 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.szIP + " 光圈停止成功!"); }, error: function () { showOPInfo(oWndInfo.szIP + " 光圈停止失败!"); } }); } } dateFormat = function (oDate, fmt) { var o = { "M+": oDate.getMonth() + 1, //月份 "d+": oDate.getDate(), //日 "h+": oDate.getHours(), //小时 "m+": oDate.getMinutes(), //分 "s+": oDate.getSeconds(), //秒 "q+": Math.floor((oDate.getMonth() + 3) / 3), //季度 "S": oDate.getMilliseconds()//毫秒 }; 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; }; // 切换模式 function changeIPMode(iType) { var arrPort = [0, 7071, 80]; $("#serverport").val(arrPort[iType]); } // 获取设备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("设备IP和端口解析失败!"); } else { showOPInfo("设备IP和端口解析成功!"); var arrTemp = szDeviceInfo.split("-"); $("#loginip").val(arrTemp[0]); $("#deviceport").val(arrTemp[1]); } } $(function () { //自动执行 console.log('开始'); clickLogin(); changeWndNum(); console.log('结束'); });


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3