From c293228f8a91ac681e26dff25167dbff7ee06cfb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com>
Date: Mon, 11 Sep 2023 11:38:49 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9C=8B=E6=9D=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../web/controller/broad/Monitoring.java | 16 +
.../src/main/resources/static/board/board.css | 4 +
.../src/main/resources/static/board/board.js | 64 +-
.../resources/static/board/monitoring.css | 0
.../main/resources/static/board/monitoring.js | 1984 +++++++++++++++++
.../resources/templates/board/board1.html | 7 +-
.../resources/templates/board/monitoring.html | 25 +
7 files changed, 2036 insertions(+), 64 deletions(-)
create mode 100644 haiwei-admin/src/main/java/com/haiwei/web/controller/broad/Monitoring.java
create mode 100644 haiwei-admin/src/main/resources/static/board/monitoring.css
create mode 100644 haiwei-admin/src/main/resources/static/board/monitoring.js
create mode 100644 haiwei-admin/src/main/resources/templates/board/monitoring.html
diff --git a/haiwei-admin/src/main/java/com/haiwei/web/controller/broad/Monitoring.java b/haiwei-admin/src/main/java/com/haiwei/web/controller/broad/Monitoring.java
new file mode 100644
index 0000000..e0330a7
--- /dev/null
+++ b/haiwei-admin/src/main/java/com/haiwei/web/controller/broad/Monitoring.java
@@ -0,0 +1,16 @@
+package com.haiwei.web.controller.broad;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @author wanghao
+ * @date 2023/8/14 10:18
+ */
+@Controller
+@RequestMapping("/board/monitoring")
+public class Monitoring {
+
+ private String prefix = "monitoring";
+
+}
diff --git a/haiwei-admin/src/main/resources/static/board/board.css b/haiwei-admin/src/main/resources/static/board/board.css
index c925fbf..d88d13a 100644
--- a/haiwei-admin/src/main/resources/static/board/board.css
+++ b/haiwei-admin/src/main/resources/static/board/board.css
@@ -256,3 +256,7 @@ body {
width: 92%;
height: 90%;
}
+.plugin{
+ width: 100%;
+ height: 100%;
+}
diff --git a/haiwei-admin/src/main/resources/static/board/board.js b/haiwei-admin/src/main/resources/static/board/board.js
index 4582f4f..1855d32 100644
--- a/haiwei-admin/src/main/resources/static/board/board.js
+++ b/haiwei-admin/src/main/resources/static/board/board.js
@@ -1,29 +1,8 @@
-$(() => {
-
- // 初始化插件参数及插入插件
- WebVideoCtrl.I_InitPlugin({
- bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
- iWndowType: 1,
- cbSelWnd: function (xmlDoc) {
- g_iWndIndex = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10);
- var szInfo = "当前选择的窗口编号:" + g_iWndIndex;
- },
- cbInitPluginComplete: function () {
- WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
- // 检查插件是否最新
- WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
- if (bFlag) {
- alert("检测到新的插件版本,双击开发包目录里的HCWebSDKPlugin.exe升级!");
- }
- });
- }, () => {
- alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
- });
- }
- });
+$(() => {
tableAnimation('#chart2')
+
$.get(ctx + 'broad/home/queryParam', {}, (e) => {
let arr = [
{
@@ -95,45 +74,6 @@ $(() => {
})
})
-function clickLogin() {
- var szIP = '192.168.0.64',
- szPort = '80',
- szUsername = 'admin',
- szPassword = 'dlts84288437';
-
- WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
- timeout: 3000,
- success: function (xmlDoc) {
- setTimeout(function () {
- clickStartRealPlay()
- }, 10);
- },
- error: function (oError) {
- }
- });
-}
-
-function clickStartRealPlay() {
- var oWndInfo = WebVideoCtrl.I_GetWindowStatus(0),
- szDeviceIdentify = '192.168.0.64_80',
- iRtspPort = 554,
- iChannelID = 1,
- bZeroChannel = false,
- szInfo = "";
- let iStreamType = 1
- var startRealPlay = function () {
- WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
- iStreamType: iStreamType,
- iChannelID: iChannelID,
- bZeroChannel: bZeroChannel,
- success: function () {
- szInfo = "开始预览成功!";
- },
- });
- };
- startRealPlay();
-}
-
let chart1 = (el, data) => {
console.log(data)
let xData = Object.keys(data[0]).filter(e => e !== 'time')
diff --git a/haiwei-admin/src/main/resources/static/board/monitoring.css b/haiwei-admin/src/main/resources/static/board/monitoring.css
new file mode 100644
index 0000000..e69de29
diff --git a/haiwei-admin/src/main/resources/static/board/monitoring.js b/haiwei-admin/src/main/resources/static/board/monitoring.js
new file mode 100644
index 0000000..0939b5c
--- /dev/null
+++ b/haiwei-admin/src/main/resources/static/board/monitoring.js
@@ -0,0 +1,1984 @@
+// 初始化插件
+
+// 全局保存当前选中窗口
+var g_iWndIndex = 0; //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口
+var g_oLocalConfig = null; //本地配置
+
+//错误码
+//通用错误
+var ERROR_CODE_UNKNOWN = 1000; //未知错误
+var ERROR_CODE_NETWORKERROR = 1001; //网络错误
+var ERROR_CODE_PARAMERROR = 1002; //缺少插件元素
+
+//登录模块
+var ERROR_CODE_LOGIN_NOLOGIN = 2000; // 未登录
+var ERROR_CODE_LOGIN_REPEATLOGIN = 2001; //设备已登录,重复登录
+var ERROR_CODE_LOGIN_NOSUPPORT = 2002; //当前设备不支持Digest登录
+
+//预览播放
+var ERROR_CODE_PLAY_PLUGININITFAIL = 3000; //插件初始化失败
+var ERROR_CODE_PLAY_NOREPEATPLAY = 3001; //当前窗口已经在预览
+var ERROR_CODE_PLAY_PLAYBACKABNORMAL = 3002; //回放异常
+var ERROR_CODE_PLAY_PLAYBACKSTOP = 3003; //回放停止
+var ERROR_CODE_PLAY_NOFREESPACE = 3004; //录像过程中,硬盘容量不足
+
+//对讲
+var ERROR_CODE_TALK_FAIL = 5000; //语音对讲失败
+
+let isLogin = false
+
+
+var version="V3.3.0build20230322"
+$(() => {
+
+ // 初始化插件参数及插入插件
+ WebVideoCtrl.I_InitPlugin({
+ bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
+ iWndowType: 1,
+ cbSelWnd: function (xmlDoc) {
+ g_iWndIndex = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10);
+ var szInfo = "当前选择的窗口编号:" + g_iWndIndex;
+ showCBInfo(szInfo);
+ },
+ cbDoubleClickWnd: function (iWndIndex, bFullScreen) {
+ var szInfo = "当前放大的窗口编号:" + iWndIndex;
+ if (!bFullScreen) {
+ szInfo = "当前还原的窗口编号:" + iWndIndex;
+ }
+ showCBInfo(szInfo);
+ },
+ cbEvent: function (iEventType, iParam1, iParam2) {
+ if (2 == iEventType) {// 回放正常结束
+ showCBInfo("窗口" + iParam1 + "回放结束!");
+ } else if (-1 == iEventType) {
+ showCBInfo("设备" + iParam1 + "网络错误!");
+ } else if (3001 == iEventType) {
+ clickStopRecord(g_szRecordType, iParam1);
+ }
+ },
+ cbInitPluginComplete: function () {
+ WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin").then(() => {
+ // 检查插件是否最新
+ WebVideoCtrl.I_CheckPluginVersion().then((bFlag) => {
+ if (bFlag) {
+ alert("检测到新的插件版本,双击开发包目录里的HCWebSDKPlugin.exe升级!");
+ }
+ });
+ }, () => {
+ alert("插件初始化失败,请确认是否已安装插件;如果未安装,请双击开发包目录里的HCWebSDKPlugin.exe安装!");
+ });
+ }
+ });
+
+ // 窗口事件绑定
+ $(window).bind({
+ resize: function () {
+ //WebVideoCtrl.I_Resize($("body").width(), $("body").height());
+ }
+ });
+
+ //初始化日期时间
+ 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");
+
+})
+// 显示操作信息
+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());
+}
+
+// 显示回调信息
+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 = $(window).width() ,
+ nHeight = $(window).height()
+
+ return {width: nWidth, height: nHeight};
+}
+
+// 打开选择框 0:文件夹 1:文件
+function clickOpenFileDlg(id, iType) {
+ WebVideoCtrl.I_OpenFileDlg(iType).then(function(szDirPath){
+ if (szDirPath != -1 && szDirPath != "" && szDirPath != null) {
+ $("#" + id).val(szDirPath);
+ }
+ }, function() {
+ console.log("打开文件路径失败");
+ });
+}
+
+// 获取本地参数
+function clickGetLocalCfg() {
+ WebVideoCtrl.I_GetLocalCfg().then((oLocalConfig) => {
+ g_oLocalConfig = oLocalConfig;
+ $("#netsPreach").val(oLocalConfig.buffNumberType);
+ $("#wndSize").val(oLocalConfig.playWndType);
+ $("#rulesInfo").val(oLocalConfig.ivsMode);
+ $("#captureFileFormat").val(oLocalConfig.captureFileFormat);
+ $("#packSize").val(oLocalConfig.packgeSize);
+ $("#recordPath").val(oLocalConfig.recordPath);
+ $("#downloadPath").val(oLocalConfig.downloadPath);
+ $("#previewPicPath").val(oLocalConfig.capturePath);
+ $("#playbackPicPath").val(oLocalConfig.playbackPicPath);
+ $("#devicePicPath").val(oLocalConfig.deviceCapturePath);
+ $("#playbackFilePath").val(oLocalConfig.playbackFilePath);
+ $("#protocolType").val(oLocalConfig.protocolType);
+ $("#secretKey").val("\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F");
+ console.log("本地配置获取成功!");
+ }, (oError) => {
+ var szInfo = "本地配置获取失败!";
+ console.log(szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 设置本地参数
+async function clickSetLocalCfg() {
+ g_oLocalConfig.buffNumberType = $("#netsPreach").val();
+ g_oLocalConfig.playWndType = $("#wndSize").val();
+ g_oLocalConfig.ivsMode = $("#rulesInfo").val();
+ g_oLocalConfig.captureFileFormat = $("#captureFileFormat").val();
+ g_oLocalConfig.packgeSize = $("#packSize").val();
+ g_oLocalConfig.recordPath = $("#recordPath").val();
+ g_oLocalConfig.downloadPath = $("#downloadPath").val();
+ g_oLocalConfig.capturePath = $("#previewPicPath").val();
+ g_oLocalConfig.playbackPicPath = $("#playbackPicPath").val();
+ g_oLocalConfig.deviceCapturePath = $("#devicePicPath").val();
+ g_oLocalConfig.playbackFilePath = $("#playbackFilePath").val();
+ g_oLocalConfig.protocolType = $("#protocolType").val();
+ if ("\x7F\x7F\x7F\x7F\x7F\x7F\x7F\x7F" !== $("#secretKey").val()) {
+ g_oLocalConfig.secretKey = await WebVideoCtrl.I_GetEncryptString($("#secretKey").val());
+ }
+ WebVideoCtrl.I_SetLocalCfg(g_oLocalConfig).then(() => {
+ console.log("本地配置设置成功!");
+ }, (oError) => {
+ var szInfo = "本地配置设置失败!";
+ console.log(szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 窗口分割数
+function changeWndNum(iType) {
+ iType = parseInt(iType, 10);
+ WebVideoCtrl.I_ChangeWndNum(iType).then(() => {
+ console.log("窗口分割成功!");
+ }, (oError) => {
+ var szInfo = "窗口分割失败!";
+ console.log(szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 登录
+function clickLogin() {
+ var szIP = '192.168.0.64',
+ szPort = '80',
+ szUsername = 'admin',
+ szPassword = 'dlts84288437';
+
+ if ("" == szIP || "" == szPort) {
+ return;
+ }
+ if(isLogin){
+
+ setTimeout(() =>{
+ clickStartRealPlay()
+ },2000)
+ return
+ }
+
+ var szDeviceIdentify = szIP + "_" + szPort;
+
+ WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
+ timeout: 3000,
+ success: function (xmlDoc) {
+ console.log(szDeviceIdentify + " 登录成功!");
+ isLogin = true
+ $("#ip").prepend("");
+ setTimeout(function () {
+ $("#ip").val(szDeviceIdentify);
+ setTimeout(function() {
+ getChannelInfo();
+ }, 1000);
+ getDevicePort();
+ setTimeout(() =>{
+ clickStartRealPlay()
+ },2000)
+ }, 10);
+ },
+ error: function (oError) {
+ if (ERROR_CODE_LOGIN_REPEATLOGIN === status) {
+ console.log(szDeviceIdentify + " 已登录过!");
+ } else {
+ console.log(szDeviceIdentify + " 登录失败!", oError.errorCode, oError.errorMsg);
+ }
+ }
+ });
+}
+
+// 退出
+function clickLogout() {
+ var szDeviceIdentify = $("#ip").val();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ WebVideoCtrl.I_Logout(szDeviceIdentify).then(() => {
+ console.log(szDeviceIdentify + " " + "退出成功!");
+ }, () => {
+ console.log(szDeviceIdentify + " " + "退出失败!");
+ });
+}
+
+// 获取设备信息
+function clickGetDeviceInfo() {
+ var szDeviceIdentify = $("#ip").val();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ WebVideoCtrl.I_GetDeviceInfo(szDeviceIdentify, {
+ 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");
+
+ console.log(szDeviceIdentify + " 获取设备信息成功!");
+ alert(arrStr.join(""));
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 获取设备信息失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+}
+
+// 获取通道
+function getChannelInfo() {
+ var szDeviceIdentify = $("#ip").val(),
+ oSel = $("#channels").empty();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ // 模拟通道
+ WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {
+ 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("");
+ });
+ console.log(szDeviceIdentify + " 获取模拟通道成功!");
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 获取模拟通道失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ // 数字通道
+ WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
+ 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) {// 过滤禁用的数字通道
+ return true;
+ }
+ if ("" == name) {
+ name = "IPCamera " + (i < 9 ? "0" + (i + 1) : (i + 1));
+ }
+ oSel.append("");
+ });
+ console.log(szDeviceIdentify + " 获取数字通道成功!");
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 获取数字通道失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ // 零通道
+ WebVideoCtrl.I_GetZeroChannelInfo(szDeviceIdentify, {
+ 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()) {// 过滤禁用的零通道
+ oSel.append("");
+ }
+ });
+ console.log(szDeviceIdentify + " 获取零通道成功!");
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 获取零通道失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+}
+
+// 获取端口
+function getDevicePort() {
+ var szDeviceIdentify = $("#ip").val();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ WebVideoCtrl.I_GetDevicePort(szDeviceIdentify).then((oPort) => {
+ $("#deviceport").val(oPort.iDevicePort);
+ $("#rtspport").val(oPort.iRtspPort);
+
+ console.log(szDeviceIdentify + " 获取端口成功!");
+ }, (oError) => {
+ var szInfo = "获取端口失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 获取数字通道
+async function clickGetDigitalChannelInfo() {
+ var szDeviceIdentify = $("#ip").val(),
+ iAnalogChannelNum = 0;
+
+ $("#digitalchannellist").empty();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ // 模拟通道
+ try {
+ var oAnalogChannelInfo = await WebVideoCtrl.I_GetAnalogChannelInfo(szDeviceIdentify, {});
+ iAnalogChannelNum = $(oAnalogChannelInfo).find("VideoInputChannel").length;
+ } finally {
+ // 数字通道
+ WebVideoCtrl.I_GetDigitalChannelInfo(szDeviceIdentify, {
+ 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;
+ });
+ console.log(szDeviceIdentify + " 获取数字通道成功!");
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 没有数字通道!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+// 开始预览
+function clickStartRealPlay(iStreamType) {
+
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szDeviceIdentify = '192.168.0.64_80',
+ iRtspPort = 554,
+ iChannelID = 1,
+ bZeroChannel = false,
+ szInfo = "";
+
+ if ("undefined" === typeof iStreamType) {
+ iStreamType = parseInt($("#streamtype").val(), 10);
+ }
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+ var startRealPlay = function () {
+ WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
+ iStreamType: 1,
+ iChannelID: iChannelID,
+ bZeroChannel: bZeroChannel,
+ success: function () {
+ szInfo = "开始预览成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 开始预览失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ };
+
+ if (oWndInfo != null) {// 已经在播放了,先停止
+ WebVideoCtrl.I_Stop({
+ success: function () {
+ startRealPlay();
+ }
+ });
+ } else {
+ startRealPlay();
+ }
+}
+function setTextOverlay() {
+ var szDeviceIdentify = $("#ip").val();
+ var szInfo = "";
+ var that = this;
+ var iChannelID = parseInt($("#channels").val(), 10);
+ var szUrl = "ISAPI/System/Video/inputs/channels/" + iChannelID + "/overlays";
+ WebVideoCtrl.I_GetTextOverlay(szUrl,szDeviceIdentify,{
+ success:function(data){
+ $(data).find("TextOverlay").eq(0).find("displayText").eq(0).text("我tet");
+ $(data).find("TextOverlay").eq(0).find("positionX").eq(0).text("20");
+ $(data).find("TextOverlay").eq(0).find("positionY").eq(0).text("30");
+ var xmldoc = toXMLStr(data);
+ var newOptions = {
+ type: "PUT",
+ data: xmldoc,
+ success: function(){
+ szInfo = "绘制osd信息成功";
+ console.log(szDeviceIdentify + " " + szInfo);
+ },
+ error: function(oError){
+ console.log(szDeviceIdentify + " 设置osd信息失败!", oError.errorCode, oError.errorMsg);
+ }
+ };
+
+ WebVideoCtrl.I_SendHTTPRequest(szDeviceIdentify,szUrl,newOptions);
+ },
+ error: function(oError){
+ console.log(szDeviceIdentify + " 设置osd信息失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+}
+// 停止预览
+function clickStopRealPlay() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Stop({
+ success: function () {
+ szInfo = "停止预览成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 停止预览失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 打开声音
+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;
+ }
+ }
+
+ WebVideoCtrl.I_OpenSound().then(() => {
+ console.log(oWndInfo.szDeviceIdentify + " " + "打开声音成功!");
+ }, (oError) => {
+ var szInfo = " 打开声音失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 关闭声音
+function clickCloseSound() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_CloseSound().then(() => {
+ console.log(oWndInfo.szDeviceIdentify + " " + "关闭声音成功!");
+ }, (oError) => {
+ var szInfo = " 关闭声音失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 设置音量
+function clickSetVolume() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ iVolume = parseInt($("#volume").val(), 10),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_SetVolume(iVolume).then(() => {
+ console.log(oWndInfo.szDeviceIdentify + " " + "设置音量成功");
+ }, (oError) => {
+ var szInfo = " 设置音量失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 抓图
+async function clickCapturePic(szType) {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ var oLocalConfig = await WebVideoCtrl.I_GetLocalCfg();
+ var szCaptureFileFormat = "0";
+ if (oLocalConfig) {
+ szCaptureFileFormat = oLocalConfig.captureFileFormat;
+ }
+
+ var szChannelID = $("#channels").val();
+ var szPicName = oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime();
+ //如果是回放抓图,需要增加如下前缀:"playback_"
+ if ("playback" === szType) {
+ szPicName = "playback_" + oWndInfo.szDeviceIdentify + "_" + szChannelID + "_" + new Date().getTime();
+ }
+
+ szPicName += ("0" === szCaptureFileFormat) ? ".jpg": ".bmp";
+
+ WebVideoCtrl.I_CapturePic(szPicName, {
+ bDateDir: true //是否生成日期文件
+ }).then(function(){
+ szInfo = "抓图成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ }, function(oError){
+ szInfo = " 抓图失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+// 抓图
+function clickCapturePicData() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_CapturePicData().then(function(data){
+ console.log(data);
+ szInfo = "抓图上传成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },function(){
+ szInfo = "抓图失败!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ });
+ }
+}
+
+// 开始录像
+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, //是否生成日期文件
+ success: function () {
+ if ('realplay' === szType) {
+ szInfo = "开始录像成功!";
+ } else if ('playback' === szType) {
+ szInfo = "开始剪辑成功!";
+ }
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ if ('realplay' === szType) {
+ szInfo = " 开始录像失败!";
+ } else if ('playback' === szType) {
+ szInfo = " 开始剪辑失败!";
+ }
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 停止录像
+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 = "停止录像成功!";
+ } else if ('playback' === szType) {
+ szInfo = "停止剪辑成功!";
+ }
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ if ('realplay' === szType) {
+ szInfo = "停止录像失败!";
+ } else if ('playback' === szType) {
+ szInfo = "停止剪辑失败!";
+ }
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 获取对讲通道
+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("");
+ });
+ console.log(szDeviceIdentify + " 获取对讲通道成功!");
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 获取对讲通道失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+}
+
+// 开始对讲
+function clickStartVoiceTalk() {
+ var szDeviceIdentify = $("#ip").val(),
+ iAudioChannel = parseInt($("#audiochannels").val(), 10),
+ szInfo = "";
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ if (isNaN(iAudioChannel)) {
+ alert("请选择对讲通道!");
+ return;
+ }
+
+ WebVideoCtrl.I_StartVoiceTalk(szDeviceIdentify, iAudioChannel).then(() => {
+ szInfo = "开始对讲成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ var szInfo = " 开始对讲失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 停止对讲
+function clickStopVoiceTalk() {
+ var szDeviceIdentify = $("#ip").val();
+ WebVideoCtrl.I_StopVoiceTalk().then(() => {
+ szInfo = "停止对讲成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ var szInfo = " 停止对讲失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 启用电子放大
+function clickEnableEZoom() {
+ var szDeviceIdentify = $("#ip").val();
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_EnableEZoom().then(() => {
+ szInfo = "启用电子放大成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "启用电子放大失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+
+ });
+ }
+}
+
+// 禁用电子放大
+function clickDisableEZoom() {
+ var szDeviceIdentify = $("#ip").val();
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_DisableEZoom().then(() => {
+ szInfo = "禁用电子放大成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "禁用电子放大失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 启用3D放大
+function clickEnable3DZoom() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+ var szDeviceIdentify = $("#ip").val();
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Enable3DZoom().then(() => {
+ szInfo = "启用3D放大成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "启用3D放大失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 禁用3D放大
+function clickDisable3DZoom() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+ var szDeviceIdentify = $("#ip").val();
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Disable3DZoom().then(() => {
+ szInfo = "禁用3D放大成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "禁用3D放大失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ }
+}
+
+// 全屏
+function clickFullScreen() {
+ WebVideoCtrl.I_FullScreen(true).then(() => {
+ console.log("全屏成功");
+ }, (oError) => {
+ console.log("全屏失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 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();
+
+ if (bZeroChannel) {// 零通道不支持云台
+ return;
+ }
+
+ if (oWndInfo != null) {
+ if (9 == iPTZIndex && g_bPTZAuto) {
+ iPTZSpeed = 0;// 自动开启后,速度置为0可以关闭自动
+ } else {
+ g_bPTZAuto = false;// 点击其他方向,自动肯定会被关闭
+ }
+
+ WebVideoCtrl.I_PTZControl(iPTZIndex, false, {
+ iPTZSpeed: iPTZSpeed,
+ success: function (xmlDoc) {
+ if (9 == iPTZIndex && g_bPTZAuto) {
+ console.log(oWndInfo.szDeviceIdentify + " 停止云台成功!");
+ } else {
+ console.log(oWndInfo.szDeviceIdentify + " 开启云台成功!");
+ }
+ if (9 == iPTZIndex) {
+ g_bPTZAuto = !g_bPTZAuto;
+ }
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 开启云台失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 方向PTZ停止
+function mouseUpPTZControl() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(1, true, {
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 停止云台成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 停止云台失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 设置预置点
+function clickSetPreset() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ iPresetID = parseInt($("#preset").val(), 10);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_SetPreset(iPresetID, {
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 设置预置点成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 设置预置点失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 调用预置点
+function clickGoPreset() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ iPresetID = parseInt($("#preset").val(), 10);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_GoPreset(iPresetID, {
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 调用预置点成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 调用预置点失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 搜索录像
+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("开始时间大于结束时间");
+ return;
+ }
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ if (bZeroChannel) {// 零通道不支持录像搜索
+ return;
+ }
+
+ if (0 == iType) {// 首次搜索
+ $("#searchlist").empty();
+ g_iSearchTimes = 0;
+ }
+
+ //如果是前端设备,需要将搜索时间转换为UTC时间
+ WebVideoCtrl.I_RecordSearch(szDeviceIdentify, iChannelID, szStartTime, szEndTime, {
+ iStreamType: iStreamType,
+ iSearchPos: g_iSearchTimes,
+ 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 + 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" + g_iSearchTimes).data("fileName", szFileName);
+ $("#downloadTd" + g_iSearchTimes).data("playbackURI", szPlaybackURI);
+ ++g_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 = g_iSearchTimes + 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" + g_iSearchTimes).data("fileName", szFileName);
+ $("#downloadTd" + g_iSearchTimes).data("playbackURI", szPlaybackURI);
+ ++g_iSearchTimes;
+ }
+ console.log(szDeviceIdentify + " 搜索录像文件成功!");
+ } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
+ setTimeout(function() {
+ g_iSearchTimes = 0;
+ console.log(szDeviceIdentify + " 没有录像文件!");
+ }, 50);
+ }
+ },
+ error: function (oError) {
+ g_iSearchTimes = 0;
+ console.log(szDeviceIdentify + " 搜索录像文件失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+}
+
+// 开始回放
+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) {// 零通道不支持回放
+ return;
+ }
+
+ var startPlayback = function () {
+ if (bChecked) {// 启用转码回放
+ var oTransCodeParam = {
+ TransFrameRate: "14",// 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: "1",// 255:Auto,3:4CIF,2:QCIF,1:CIF
+ TransBitrate: "19"// 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 = "开始回放成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "开始回放失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ } else {
+ WebVideoCtrl.I_StartPlayback(szDeviceIdentify, {
+ iRtspPort: iRtspPort,
+ iStreamType: iStreamType,
+ iChannelID: iChannelID,
+ szStartTime: szStartTime,
+ szEndTime: szEndTime,
+ success: function () {
+ szInfo = "开始回放成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "开始回放失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+ };
+
+ if (oWndInfo != null) {// 已经在播放了,先停止
+ WebVideoCtrl.I_Stop({
+ success: function () {
+ startPlayback();
+ }
+ });
+ } else {
+ startPlayback();
+ }
+}
+
+// 停止回放
+function clickStopPlayback() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Stop({
+ success: function () {
+ szInfo = "停止回放成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "停止回放失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 开始倒放
+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) {// 零通道不支持倒放
+ return;
+ }
+
+ var reversePlayback = function () {
+ WebVideoCtrl.I_ReversePlayback(szDeviceIdentify, {
+ iRtspPort: iRtspPort,
+ iStreamType: iStreamType,
+ iChannelID: iChannelID,
+ szStartTime: szStartTime,
+ szEndTime: szEndTime
+ }).then(() => {
+ szInfo = "开始倒放成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "开始倒放失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+ };
+
+ if (oWndInfo != null) {// 已经在播放了,先停止
+ WebVideoCtrl.I_Stop({
+ success: function () {
+ reversePlayback();
+ }
+ });
+ } else {
+ reversePlayback();
+ }
+}
+
+// 单帧
+function clickFrame() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Frame({
+ success: function () {
+ szInfo = "单帧播放成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "单帧播放失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 暂停
+function clickPause() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Pause({
+ success: function () {
+ szInfo = "暂停成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "暂停失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 恢复
+function clickResume() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_Resume({
+ success: function () {
+ szInfo = "恢复成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "恢复失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 慢放
+function clickPlaySlow() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PlaySlow({
+ success: function () {
+ szInfo = "慢放成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "慢放失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 快放
+function clickPlayFast() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
+ szInfo = "";
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PlayFast({
+ success: function () {
+ szInfo = "快放成功!";
+ console.log(oWndInfo.szDeviceIdentify + " " + szInfo);
+ },
+ error: function (oError) {
+ szInfo = "快放失败!";
+ console.log(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// OSD时间
+function clickGetOSDTime() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_GetOSDTime({
+ success: function (szOSDTime) {
+ $("#osdtime").val(szOSDTime);
+ console.log(oWndInfo.szDeviceIdentify + " 获取OSD时间成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 获取OSD时间失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 下载录像
+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;
+ }
+
+ WebVideoCtrl.I_StartDownloadRecord(szDeviceIdentify, szPlaybackURI, szFileName, {
+ bDateDir: true //是否生成日期文件
+ }).then((iDownloadID) => {
+ g_iDownloadID = iDownloadID;
+ $("").appendTo("body");
+ g_tDownloadProcess = setInterval("downProcess(" + i + ")", 1000);
+ }, (oError) => {
+ WebVideoCtrl.I_GetLastError().then((iErrorValue) => {
+ if (34 == iErrorValue) {
+ console.log(szDeviceIdentify + " 已下载!");
+ } else if (33 == iErrorValue) {
+ console.log(szDeviceIdentify + " 空间不足!");
+ } else {
+ console.log(szDeviceIdentify + " 下载失败!");
+ }
+ });
+ });
+}
+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("开始时间大于结束时间");
+ return;
+ }
+ WebVideoCtrl.I_StartDownloadRecordByTime(szDeviceIdentify, szPlaybackURI, szFileName, szStartTime,szEndTime,{
+ bDateDir: true //是否生成日期文件
+ }).then((iDownloadID) => {
+ g_iDownloadID = iDownloadID;
+ $("").appendTo("body");
+ g_tDownloadProcess = setInterval("downProcess(" + 0 + ")", 1000);
+ }, (oError) => {
+ console.log(szDeviceIdentify + " 下载失败!");
+ });
+}
+
+function clickStopDownload() {
+ WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID).then(() => {
+ console.log("停止下载成功!");
+ clearInterval(g_tDownloadProcess);
+ g_tDownloadProcess = 0;
+ g_iDownloadID = -1;
+ $("#downProcess").remove();
+ }, (oError) => {
+ console.log(szDeviceIdentify + " 停止下载失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+// 下载进度
+async function downProcess() {
+ var iStatus = await 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 = await 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);
+
+ await WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID);
+
+ console.log("录像下载完成!");
+ clearInterval(g_tDownloadProcess);
+ g_tDownloadProcess = 0;
+ g_iDownloadID = -1;
+ }
+ } else {
+ await WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID);
+
+ clearInterval(g_tDownloadProcess);
+ g_tDownloadProcess = 0;
+ g_iDownloadID = -1;
+ }
+}
+
+// 导出配置文件
+function clickExportDeviceConfig() {
+ var szDeviceIdentify = $("#ip").val(),
+ szInfo = "";
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+ var szDevicePassWord = $("#edfpassword").val();
+
+ WebVideoCtrl.I_ExportDeviceConfig(szDeviceIdentify,szDevicePassWord).then(() => {
+ szInfo = "导出配置文件成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ }, (oError) => {
+ szInfo = "导出配置文件失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 导入配置文件
+function clickImportDeviceConfig() {
+ var szDeviceIdentify = $("#ip").val(),
+ szFileName = $("#configFile").val(),
+ szDevicePassWord = $("#edfpassword").val(),
+ szInfo = "";
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ if ("" == szFileName) {
+ alert("请选择配置文件!");
+ return;
+ }
+
+ WebVideoCtrl.I_ImportDeviceConfig(szDeviceIdentify, szFileName,szDevicePassWord).then(() => {
+ szInfo = "导入成功!";
+ console.log(szDeviceIdentify + " " + szInfo);
+ WebVideoCtrl.I_Restart(szDeviceIdentify, {
+ 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('" + szDeviceIdentify + "')", 20000);
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }, (oError) => {
+ szInfo = "导入失败!";
+ console.log(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 重连
+function reconnect(szDeviceIdentify) {
+ WebVideoCtrl.I_Reconnect(szDeviceIdentify, {
+ timeout: 3000,
+ success: function (xmlDoc) {
+ $("#restartDiv").remove();
+ },
+ error: function () {
+ setTimeout(function () {reconnect(szDeviceIdentify);}, 5000);
+ }
+ });
+}
+
+// 开始升级
+var g_tUpgrade = 0;
+function clickStartUpgrade(szDeviceIdentify) {
+ var szDeviceIdentify = $("#ip").val(),
+ szFileName = $("#upgradeFile").val();
+
+ if (null == szDeviceIdentify) {
+ return;
+ }
+
+ if ("" == szFileName) {
+ alert("请选择升级文件!");
+ return;
+ }
+ WebVideoCtrl.I_StartUpgrade(szDeviceIdentify, szFileName).then(function(){
+ g_tUpgrade = setInterval("getUpgradeStatus('" + szDeviceIdentify + "')", 1000);
+ },function(){
+ clearInterval(g_tUpgrade);
+ console.log(szDeviceIdentify + " 升级失败!");
+ });
+}
+
+// 获取升级状态
+async function getUpgradeStatus(szDeviceIdentify) {
+ var bUpdating = await WebVideoCtrl.I_UpgradeStatus(szDeviceIdentify);
+ if (bUpdating) {
+ var iProcess = await WebVideoCtrl.I_UpgradeProgress(szDeviceIdentify);
+ if (iProcess < 0) {
+ clearInterval(g_tUpgrade);
+ g_tUpgrade = 0;
+ console.log(szDeviceIdentify + " 获取进度失败!");
+ 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 {
+ await WebVideoCtrl.I_StopUpgrade();
+ clearInterval(g_tUpgrade);
+ g_tUpgrade = 0;
+
+ $("#restartDiv").remove();
+
+ WebVideoCtrl.I_Restart(szDeviceIdentify, {
+ 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('" + szDeviceIdentify + "')", 20000);
+ },
+ error: function (oError) {
+ console.log(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+ } else {
+ await WebVideoCtrl.I_StopUpgrade();
+ clearInterval(g_tUpgrade);
+ g_tUpgrade = 0;
+
+ $("#restartDiv").remove();
+
+ WebVideoCtrl.I_Restart(szDeviceIdentify, {
+ success: function () {
+ $("重启中...
").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 (oError) {
+ console.log(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 检查插件版本
+function clickCheckPluginVersion() {
+ var szDeviceIdentify = $("#ip").val();
+ WebVideoCtrl.I_CheckPluginVersion().then((bNeedUpdate) => {
+ if (bNeedUpdate) {
+ alert("检测到新的插件版本!");
+ } else {
+ alert("您的插件版本已经是最新的!");
+ }
+ }, () => {
+ console.log(szDeviceIdentify + " 检测插件新版本失败");
+ });
+}
+
+function clickRestoreDefault() {
+ var szDeviceIdentify = $("#ip").val(),
+ szMode = "basic";
+ WebVideoCtrl.I_RestoreDefault(szDeviceIdentify, szMode).then(() => {
+ $("#restartDiv").remove();
+ console.log(szDeviceIdentify + " 恢复默认参数成功!");
+ }, (oError) => {
+ console.log(szDeviceIdentify + " 恢复默认参数失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+function PTZZoomIn() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(10, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦+成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦+失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZZoomout() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(11, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦-成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦-失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZZoomStop() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(11, true, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦停止成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 调焦停止失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZFocusIn() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(12, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦+成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦+失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZFoucusOut() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(13, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦-成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦-失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZFoucusStop() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(12, true, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦停止成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 聚焦停止失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZIrisIn() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(14, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈+成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈+失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZIrisOut() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(15, false, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈-成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈-失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+function PTZIrisStop() {
+ var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex);
+
+ if (oWndInfo != null) {
+ WebVideoCtrl.I_PTZControl(14, true, {
+ iWndIndex: g_iWndIndex,
+ success: function (xmlDoc) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈停止成功!");
+ },
+ error: function (oError) {
+ console.log(oWndInfo.szDeviceIdentify + " 光圈停止失败!", oError.errorCode, oError.errorMsg);
+ }
+ });
+ }
+}
+
+// 切换模式
+function changeIPMode(iType) {
+ var arrPort = [0, 7071, 80];
+
+ $("#serverport").val(arrPort[iType]);
+}
+
+// 获取设备IP,B1暂不支持
+// 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) {
+// console.log("设备IP和端口解析失败!");
+// } else {
+// console.log("设备IP和端口解析成功!");
+
+// var arrTemp = szDeviceInfo.split("-");
+// $("#loginip").val(arrTemp[0]);
+// $("#deviceport").val(arrTemp[1]);
+// }
+// }
+
+// 启用多边形绘制
+var g_bEnableDraw = false;
+function clickEnableDraw() {
+ WebVideoCtrl.I_SetPlayModeType(6).then(() => {
+ g_bEnableDraw = true;
+ console.log("启用绘制成功!");
+ }, (oError) => {
+ console.log("启用绘制失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 禁用多边形绘制
+function clickDisableDraw() {
+ WebVideoCtrl.I_SetSnapDrawMode(0, -1).then(() => {
+ g_bEnableDraw = false;
+ console.log("禁用绘制成功!");
+ }, (oError) => {
+ console.log("禁用绘制失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 添加图形,最多不超过16个图形
+function clickAddSnapPolygon() {
+ if (!g_bEnableDraw) {
+ return;
+ }
+
+ var szId = $("#snapId").val();
+ var szName = encodeString($("#snapName").val());
+
+ var szInfo = "";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "" + szId + ""; // [1, 32]
+ szInfo += "0"; //如果想绘制多边形,polygonType指需要改为1
+ szInfo += "17"; // [MinClosed, 17]
+ szInfo += "4"; // [4, 17]
+ szInfo += "#" + szId + "#" + szName + "";
+ szInfo += "false";
+ szInfo += "02550";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "";
+
+ WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo).then(() => {
+ console.log("添加图形成功!");
+ });
+ WebVideoCtrl.I_SetSnapDrawMode(g_iWndIndex, 2);
+}
+
+// 删除图形
+function clickDelSnapPolygon() {
+ if (!g_bEnableDraw) {
+ return;
+ }
+
+ var szId = $("#snapId").val();
+ var aShapes = [];
+ aShapes.push({
+ polygonType: 0,
+ id: szId
+ });
+
+ WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex, aShapes);
+}
+
+// 获取图形,保存到自己数据库中
+function clickGetSnapPolygon() {
+ WebVideoCtrl.I_GetSnapPolygonInfo(g_iWndIndex).then((szXml) => {
+ alert(szXml);
+ });
+}
+
+// 设置图形,页面打开时可以设置以前设置过的图形
+function clickSetSnapPolygon() {
+ if (!g_bEnableDraw) {
+ return;
+ }
+
+ WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex);
+
+ var szInfo = "";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "1";
+ szInfo += "1";
+ szInfo += "#1#设置1";
+ szInfo += "true";
+ szInfo += "02550";
+ szInfo += "";
+ szInfo += "0.7379030.229730";
+ szInfo += "0.9475810.804054";
+ szInfo += "0.3629030.777027";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "2";
+ szInfo += "0";
+ szInfo += "#2#设置2";
+ szInfo += "true";
+ szInfo += "2552550";
+ szInfo += "";
+ szInfo += "0.20.2";
+ szInfo += "0.80.2";
+ szInfo += "0.80.8";
+ szInfo += "0.20.8";
+ szInfo += "";
+ szInfo += "";
+ szInfo += "";
+
+ WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo).then(() => {
+ console.log("设置图形成功!");
+ }, (oError) => {
+ console.log("设置图形失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 清空图形
+function clickDelAllSnapPolygon() {
+ if (!g_bEnableDraw) {
+ return;
+ }
+
+ WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex).then(() => {
+ console.log("清空图形成功!");
+ }, (oError) => {
+ console.log("清空图形失败!", oError.errorCode, oError.errorMsg);
+ });
+}
+
+// 设备抓图
+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) {// 零通道不支持设备抓图
+ return;
+ }
+
+ var szPicName = szDeviceIdentify + "_" + iChannelID + "_" + new Date().getTime();
+ var iRet = WebVideoCtrl.I_DeviceCapturePic(szDeviceIdentify, iChannelID, szPicName, {
+ bDateDir: true, //是否生成日期文件
+ iResolutionWidth: iResolutionWidth,
+ iResolutionHeight: iResolutionHeight
+ });
+
+ if (0 == iRet) {
+ szInfo = "设备抓图成功!";
+ } else {
+ szInfo = "设备抓图失败!";
+ }
+ console.log(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 "";
+ }
+}
diff --git a/haiwei-admin/src/main/resources/templates/board/board1.html b/haiwei-admin/src/main/resources/templates/board/board1.html
index 034327d..071da6a 100644
--- a/haiwei-admin/src/main/resources/templates/board/board1.html
+++ b/haiwei-admin/src/main/resources/templates/board/board1.html
@@ -38,7 +38,7 @@
backgroundImage: status[`bottomBtn${e}S`] ? 'url("../../board/img/btn1bg.png")' : 'url("../../board/img/btnbg.png")'
})
if (e === 3) {
- clickLogin()
+ // clickStopRealPlay()
}
}
const toggleInfo = () => {
@@ -49,6 +49,9 @@
})
}
const bottomBtnInfo = (e, el) => {
+ if (e === 3) {
+ // clickLogin()
+ }
$("#modal" + e).toggle()
switch (e) {
case 1:
@@ -228,7 +231,7 @@
diff --git a/haiwei-admin/src/main/resources/templates/board/monitoring.html b/haiwei-admin/src/main/resources/templates/board/monitoring.html
new file mode 100644
index 0000000..10fb384
--- /dev/null
+++ b/haiwei-admin/src/main/resources/templates/board/monitoring.html
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+