| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986 |
- // 初始化插件
- // 全局保存当前选中窗口
- 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; //语音对讲失败
- var version="V3.3.0build20230322"
- $(function () {
- // 初始化插件参数及插入插件
- WebVideoCtrl.I_InitPlugin({
- bWndFull: true, //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
- iWndowType: 1,
- // aIframe: ["test", "test2"],
- 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 = "<div>" + 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 += "</div>";
- $("#opinfo").html(szTip + $("#opinfo").html());
- }
- // 显示回调信息
- function showCBInfo(szInfo) {
- szInfo = "<div>" + dateFormat(new Date(), "yyyy-MM-dd hh:mm:ss") + " " + szInfo + "</div>";
- $("#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) {
- WebVideoCtrl.I_OpenFileDlg(iType).then(function(szDirPath){
- if (szDirPath != -1 && szDirPath != "" && szDirPath != null) {
- $("#" + id).val(szDirPath);
- }
- }, function() {
- showOPInfo("打开文件路径失败");
- });
- }
- // 获取本地参数
- 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");
- showOPInfo("本地配置获取成功!");
- }, (oError) => {
- var szInfo = "本地配置获取失败!";
- showOPInfo(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(() => {
- showOPInfo("本地配置设置成功!");
- }, (oError) => {
- var szInfo = "本地配置设置失败!";
- showOPInfo(szInfo, oError.errorCode, oError.errorMsg);
- });
- }
- // 窗口分割数
- function changeWndNum(iType) {
- if ("1*2" === iType || "2*1" === iType) {
- WebVideoCtrl.I_ArrangeWindow(iType).then(() => {
- showOPInfo("窗口分割成功!");
- }, (oError) => {
- var szInfo = "窗口分割失败!";
- showOPInfo(szInfo, oError.errorCode, oError.errorMsg);
- });
- } else {
- iType = parseInt(iType, 10);
- WebVideoCtrl.I_ChangeWndNum(iType).then(() => {
- showOPInfo("窗口分割成功!");
- }, (oError) => {
- var szInfo = "窗口分割失败!";
- showOPInfo(szInfo, oError.errorCode, oError.errorMsg);
- });
- }
- }
- // 登录
- function clickLogin(new_ip) {
- // var szIP = $("#loginip").val(),
- var szIP=new_ip,
- szPort = $("#port").val(),
- szUsername = $("#username").val(),
- szPassword = $("#password").val();
- if ("" == szIP || "" == szPort) {
- return;
- }
- var szDeviceIdentify = szIP + "_" + szPort;
- WebVideoCtrl.I_Login(szIP, 1, szPort, szUsername, szPassword, {
- timeout: 3000,
- success: function (xmlDoc) {
- showOPInfo(szDeviceIdentify + " 登录成功!");
- //$("#ip").empty(); //zlwu
- $("#ip").prepend("<option value='" + szDeviceIdentify + "'>" + szDeviceIdentify + "</option>");
- setTimeout(function () {
- $("#ip").val(szDeviceIdentify);
- setTimeout(function() {
- getChannelInfo();
- }, 100);
- getDevicePort();
- }, 100);
- setTimeout(function () {
- clickStartRealPlay();//zlwu
- }, 1000);
- },
- error: function (oError) {
- if (ERROR_CODE_LOGIN_REPEATLOGIN === status) {
- showOPInfo(szDeviceIdentify + " 已登录过!");
- clickStartRealPlay() //zlwu
- } else {
- showOPInfo(szDeviceIdentify + " 登录失败!", oError.errorCode, oError.errorMsg);
- }
- }
- });
- }
- // 退出
- function clickLogout() {
- var szDeviceIdentify = $("#ip").val();
- if (null == szDeviceIdentify) {
- return;
- }
- WebVideoCtrl.I_Logout(szDeviceIdentify).then(() => {
- showOPInfo(szDeviceIdentify + " " + "退出成功!");
- }, () => {
- showOPInfo(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");
-
- showOPInfo(szDeviceIdentify + " 获取设备信息成功!");
- alert(arrStr.join(""));
- },
- error: function (oError) {
- showOPInfo(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("<option value='" + id + "' bZero='false'>" + name + "</option>");
- });
- showOPInfo(szDeviceIdentify + " 获取模拟通道成功!");
- },
- error: function (oError) {
- showOPInfo(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("<option value='" + id + "' bZero='false'>" + name + "</option>");
- });
- showOPInfo(szDeviceIdentify + " 获取数字通道成功!");
- },
- error: function (oError) {
- showOPInfo(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("<option value='" + id + "' bZero='true'>" + name + "</option>");
- }
- });
- showOPInfo(szDeviceIdentify + " 获取零通道成功!");
- },
- error: function (oError) {
- showOPInfo(szDeviceIdentify + " 获取零通道失败!", oError.errorCode, oError.errorMsg);
- }
- });
- }
- // 获取端口
- function getDevicePort() {
- var szDeviceIdentify = $("#ip").val();
- if (null == szDeviceIdentify) {
- return;
- }
- var oPort = WebVideoCtrl.I_GetDevicePort(szDeviceIdentify).then((oPort) => {
- $("#deviceport").val(oPort.iDevicePort);
- $("#rtspport").val(oPort.iRtspPort);
- showOPInfo(szDeviceIdentify + " 获取端口成功!");
- }, (oError) => {
- var szInfo = "获取端口失败!";
- showOPInfo(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;
- });
- showOPInfo(szDeviceIdentify + " 获取数字通道成功!");
- },
- error: function (oError) {
- showOPInfo(szDeviceIdentify + " 没有数字通道!", oError.errorCode, oError.errorMsg);
- }
- });
- }
- }
- // 开始预览
- function clickStartRealPlay(iStreamType) {
- var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
- szDeviceIdentify = $("#ip").val(),
- iRtspPort = parseInt($("#rtspport").val(), 10),
- iChannelID = parseInt($("#channels").val(), 10),
- bZeroChannel = $("#channels option").eq($("#channels").get(0).selectedIndex).attr("bZero") == "true" ? true : false,
- szInfo = "";
- if ("undefined" === typeof iStreamType) {
- iStreamType = parseInt($("#streamtype").val(), 10);
- }
- if (null == szDeviceIdentify) {
- return;
- }
- var startRealPlay = function () {
- WebVideoCtrl.I_StartRealPlay(szDeviceIdentify, {
- iStreamType: iStreamType,
- iChannelID: iChannelID,
- bZeroChannel: bZeroChannel,
- iPort: iRtspPort,
- success: function () {
- szInfo = "开始预览成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- showOPInfo(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信息成功";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- },
- error: function(oError){
- showOPInfo(szDeviceIdentify + " 设置osd信息失败!", oError.errorCode, oError.errorMsg);
- }
- };
-
- WebVideoCtrl.I_SendHTTPRequest(szDeviceIdentify,szUrl,newOptions);
- },
- error: function(oError){
- showOPInfo(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 = "停止预览成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- showOPInfo(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(() => {
- showOPInfo(oWndInfo.szDeviceIdentify + " " + "打开声音成功!");
- }, (oError) => {
- var szInfo = " 打开声音失败!";
- showOPInfo(oWndInfo.szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
- });
- }
- }
- // 关闭声音
- function clickCloseSound() {
- var oWndInfo = WebVideoCtrl.I_GetWindowStatus(g_iWndIndex),
- szInfo = "";
- if (oWndInfo != null) {
- WebVideoCtrl.I_CloseSound().then(() => {
- showOPInfo(oWndInfo.szDeviceIdentify + " " + "关闭声音成功!");
- }, (oError) => {
- var szInfo = " 关闭声音失败!";
- showOPInfo(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(() => {
- showOPInfo(oWndInfo.szDeviceIdentify + " " + "设置音量成功");
- }, (oError) => {
- var szInfo = " 设置音量失败!";
- showOPInfo(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 = "抓图成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- }, function(oError){
- szInfo = " 抓图失败!";
- showOPInfo(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 = "抓图上传成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },function(){
- szInfo = "抓图失败!";
- showOPInfo(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 = "开始剪辑成功!";
- }
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- if ('realplay' === szType) {
- szInfo = " 开始录像失败!";
- } else if ('playback' === szType) {
- szInfo = " 开始剪辑失败!";
- }
- showOPInfo(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 = "停止剪辑成功!";
- }
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- if ('realplay' === szType) {
- szInfo = "停止录像失败!";
- } else if ('playback' === szType) {
- szInfo = "停止剪辑失败!";
- }
- sshowOPInfo(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("<option value='" + id + "'>" + id + "</option>");
- });
- showOPInfo(szDeviceIdentify + " 获取对讲通道成功!");
- },
- error: function (oError) {
- showOPInfo(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 = "开始对讲成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- var szInfo = " 开始对讲失败!";
- showOPInfo(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
- });
- }
- // 停止对讲
- function clickStopVoiceTalk() {
- var szDeviceIdentify = $("#ip").val();
- WebVideoCtrl.I_StopVoiceTalk().then(() => {
- szInfo = "停止对讲成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- var szInfo = " 停止对讲失败!";
- showOPInfo(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 = "启用电子放大成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "启用电子放大失败!";
- showOPInfo(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 = "禁用电子放大成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "禁用电子放大失败!";
- showOPInfo(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放大成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "启用3D放大失败!";
- showOPInfo(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放大成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "禁用3D放大失败!";
- showOPInfo(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
- });
- }
- }
- // 全屏
- function clickFullScreen() {
- WebVideoCtrl.I_FullScreen(true).then(() => {
- showOPInfo("全屏成功");
- }, (oError) => {
- showOPInfo("全屏失败!", 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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 停止云台成功!");
- } else {
- showOPInfo(oWndInfo.szDeviceIdentify + " 开启云台成功!");
- }
- if (9 == iPTZIndex) {
- g_bPTZAuto = !g_bPTZAuto;
- }
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 停止云台成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 设置预置点成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 调用预置点成功!");
- },
- error: function (oError) {
- showOPInfo(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 = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + g_iSearchTimes + ");'>下载</a>";
- $("#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 = "<a href='javascript:;' onclick='clickStartDownloadRecord(" + g_iSearchTimes + ");'>下载</a>";
- $("#downloadTd" + g_iSearchTimes).data("fileName", szFileName);
- $("#downloadTd" + g_iSearchTimes).data("playbackURI", szPlaybackURI);
- ++g_iSearchTimes;
- }
- showOPInfo(szDeviceIdentify + " 搜索录像文件成功!");
- } else if("NO MATCHES" === $(xmlDoc).find("responseStatusStrg").eq(0).text()) {
- setTimeout(function() {
- g_iSearchTimes = 0;
- showOPInfo(szDeviceIdentify + " 没有录像文件!");
- }, 50);
- }
- },
- error: function (oError) {
- g_iSearchTimes = 0;
- showOPInfo(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 = "开始回放成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "开始回放失败!";
- showOPInfo(szDeviceIdentify + szInfo, oError.errorCode, oError.errorMsg);
- }
- });
- } else {
- WebVideoCtrl.I_StartPlayback(szDeviceIdentify, {
- iRtspPort: iRtspPort,
- iStreamType: iStreamType,
- iChannelID: iChannelID,
- szStartTime: szStartTime,
- szEndTime: szEndTime,
- success: function () {
- szInfo = "开始回放成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "开始回放失败!";
- showOPInfo(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 = "停止回放成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "停止回放失败!";
- showOPInfo(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 = "开始倒放成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "开始倒放失败!";
- showOPInfo(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 = "单帧播放成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "单帧播放失败!";
- showOPInfo(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 = "暂停成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "暂停失败!";
- showOPInfo(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 = "恢复成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "恢复失败!";
- showOPInfo(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 = "慢放成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "慢放失败!";
- showOPInfo(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 = "快放成功!";
- showOPInfo(oWndInfo.szDeviceIdentify + " " + szInfo);
- },
- error: function (oError) {
- szInfo = "快放失败!";
- showOPInfo(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);
- showOPInfo(oWndInfo.szDeviceIdentify + " 获取OSD时间成功!");
- },
- error: function (oError) {
- showOPInfo(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;
- $("<div id='downProcess' class='freeze'></div>").appendTo("body");
- g_tDownloadProcess = setInterval("downProcess(" + i + ")", 1000);
- }, (oError) => {
- WebVideoCtrl.I_GetLastError().then((iErrorValue) => {
- if (34 == iErrorValue) {
- showOPInfo(szDeviceIdentify + " 已下载!");
- } else if (33 == iErrorValue) {
- showOPInfo(szDeviceIdentify + " 空间不足!");
- } else {
- showOPInfo(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;
- $("<div id='downProcess' class='freeze'></div>").appendTo("body");
- g_tDownloadProcess = setInterval("downProcess(" + 0 + ")", 1000);
- }, (oError) => {
- showOPInfo(szDeviceIdentify + " 下载失败!");
- });
- }
- function clickStopDownload() {
- WebVideoCtrl.I_StopDownloadRecord(g_iDownloadID).then(() => {
- showOPInfo("停止下载成功!");
- clearInterval(g_tDownloadProcess);
- g_tDownloadProcess = 0;
- g_iDownloadID = -1;
- $("#downProcess").remove();
- }, (oError) => {
- showOPInfo(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);
- showOPInfo("录像下载完成!");
- 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 = "导出配置文件成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }, (oError) => {
- szInfo = "导出配置文件失败!";
- showOPInfo(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 = "导入成功!";
- showOPInfo(szDeviceIdentify + " " + szInfo);
- WebVideoCtrl.I_Restart(szDeviceIdentify, {
- success: function (xmlDoc) {
- $("<div id='restartDiv' class='freeze'>重启中...</div>").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) {
- showOPInfo(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
- }
- });
- }, (oError) => {
- szInfo = "导入失败!";
- showOPInfo(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);
- showOPInfo(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;
- showOPInfo(szDeviceIdentify + " 获取进度失败!");
- return;
- } else if (iProcess < 100) {
- if (0 == $("#restartDiv").length) {
- $("<div id='restartDiv' class='freeze'></div>").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) {
- $("<div id='restartDiv' class='freeze'>重启中...</div>").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) {
- showOPInfo(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
- }
- });
- }
- } else {
- await WebVideoCtrl.I_StopUpgrade();
- clearInterval(g_tUpgrade);
- g_tUpgrade = 0;
- $("#restartDiv").remove();
- WebVideoCtrl.I_Restart(szDeviceIdentify, {
- success: function () {
- $("<div id='restartDiv' class='freeze'>重启中...</div>").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) {
- showOPInfo(szDeviceIdentify + " 重启失败!", oError.errorCode, oError.errorMsg);
- }
- });
- }
- }
- // 检查插件版本
- function clickCheckPluginVersion() {
- var szDeviceIdentify = $("#ip").val();
- WebVideoCtrl.I_CheckPluginVersion().then((bNeedUpdate) => {
- if (bNeedUpdate) {
- alert("检测到新的插件版本!");
- } else {
- alert("您的插件版本已经是最新的!");
- }
- }, () => {
- showOPInfo(szDeviceIdentify + " 检测插件新版本失败");
- });
- }
- function clickRestoreDefault() {
- var szDeviceIdentify = $("#ip").val(),
- szMode = "basic";
- WebVideoCtrl.I_RestoreDefault(szDeviceIdentify, szMode).then(() => {
- $("#restartDiv").remove();
- showOPInfo(szDeviceIdentify + " 恢复默认参数成功!");
- }, (oError) => {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 调焦+成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 调焦-成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 调焦停止成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦+成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦-成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 聚焦停止成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 光圈+成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 光圈-成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- showOPInfo(oWndInfo.szDeviceIdentify + " 光圈停止成功!");
- },
- error: function (oError) {
- showOPInfo(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) {
- // showOPInfo("设备IP和端口解析失败!");
- // } else {
- // showOPInfo("设备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;
- showOPInfo("启用绘制成功!");
- }, (oError) => {
- showOPInfo("启用绘制失败!", oError.errorCode, oError.errorMsg);
- });
- }
- // 禁用多边形绘制
- function clickDisableDraw() {
- WebVideoCtrl.I_SetSnapDrawMode(0, -1).then(() => {
- g_bEnableDraw = false;
- showOPInfo("禁用绘制成功!");
- }, (oError) => {
- showOPInfo("禁用绘制失败!", oError.errorCode, oError.errorMsg);
- });
- }
- // 添加图形,最多不超过16个图形
- function clickAddSnapPolygon() {
- if (!g_bEnableDraw) {
- return;
- }
- var szId = $("#snapId").val();
- var szName = encodeString($("#snapName").val());
- var szInfo = "<?xml version='1.0' encoding='utf-8'?>";
- szInfo += "<SnapPolygonList>";
- szInfo += "<SnapPolygon>";
- szInfo += "<id>" + szId + "</id>"; // [1, 32]
- szInfo += "<polygonType>0</polygonType>"; //如果想绘制多边形,polygonType指需要改为1
- szInfo += "<PointNumMax>17</PointNumMax>"; // [MinClosed, 17]
- szInfo += "<MinClosed>4</MinClosed>"; // [4, 17]
- szInfo += "<tips>#" + szId + "#" + szName + "</tips>";
- szInfo += "<isClosed>false</isClosed>";
- szInfo += "<color><r>0</r><g>255</g><b>0</b></color>";
- szInfo += "<pointList/>";
- szInfo += "</SnapPolygon>";
- szInfo += "</SnapPolygonList>";
- WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo).then(() => {
- showOPInfo("添加图形成功!");
- });
- 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 = "<?xml version='1.0' encoding='utf-8'?>";
- szInfo += "<SnapPolygonList>";
- szInfo += "<SnapPolygon>";
- szInfo += "<id>1</id>";
- szInfo += "<polygonType>1</polygonType>";
- szInfo += "<tips>#1#设置1</tips>";
- szInfo += "<isClosed>true</isClosed>";
- szInfo += "<color><r>0</r><g>255</g><b>0</b></color>";
- szInfo += "<pointList>";
- szInfo += "<point><x>0.737903</x><y>0.229730</y></point>";
- szInfo += "<point><x>0.947581</x><y>0.804054</y></point>";
- szInfo += "<point><x>0.362903</x><y>0.777027</y></point>";
- szInfo += "</pointList>";
- szInfo += "</SnapPolygon>";
- szInfo += "<SnapPolygon>";
- szInfo += "<id>2</id>";
- szInfo += "<polygonType>0</polygonType>";
- szInfo += "<tips>#2#设置2</tips>";
- szInfo += "<isClosed>true</isClosed>";
- szInfo += "<color><r>255</r><g>255</g><b>0</b></color>";
- szInfo += "<pointList>";
- szInfo += "<point><x>0.2</x><y>0.2</y></point>";
- szInfo += "<point><x>0.8</x><y>0.2</y></point>";
- szInfo += "<point><x>0.8</x><y>0.8</y></point>";
- szInfo += "<point><x>0.2</x><y>0.8</y></point>";
- szInfo += "</pointList>";
- szInfo += "</SnapPolygon>";
- szInfo += "</SnapPolygonList>";
- WebVideoCtrl.I_SetSnapPolygonInfo(g_iWndIndex, szInfo).then(() => {
- showOPInfo("设置图形成功!");
- }, (oError) => {
- showOPInfo("设置图形失败!", oError.errorCode, oError.errorMsg);
- });
- }
- // 清空图形
- function clickDelAllSnapPolygon() {
- if (!g_bEnableDraw) {
- return;
- }
- WebVideoCtrl.I_ClearSnapInfo(g_iWndIndex).then(() => {
- showOPInfo("清空图形成功!");
- }, (oError) => {
- showOPInfo("清空图形失败!", 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 = "设备抓图失败!";
- }
- showOPInfo(szDeviceIdentify + " " + szInfo);
- }
- function loadXML(szXml) {
- if(null == szXml || "" == szXml) {
- return null;
- }
- var oXmlDoc = null;
- if (window.DOMParser) {
- var oParser = new DOMParser();
- oXmlDoc = oParser.parseFromString(szXml, "text/xml");
- } else {
- oXmlDoc = new ActiveXObject("Microsoft.XMLDOM");
- oXmlDoc.async = false;
- oXmlDoc.loadXML(szXml);
- }
- return oXmlDoc;
- }
- function toXMLStr(oXmlDoc) {
- var szXmlDoc = "";
- try {
- var oSerializer = new XMLSerializer();
- szXmlDoc = oSerializer.serializeToString(oXmlDoc);
- } catch (e) {
- try {
- szXmlDoc = oXmlDoc.xml;
- } catch (e) {
- return "";
- }
- }
- if (szXmlDoc.indexOf("<?xml") == -1) {
- szXmlDoc = "<?xml version='1.0' encoding='utf-8'?>" + szXmlDoc;
- }
- return szXmlDoc;
- }
- function encodeString(str) {
- if (str) {
- return str.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>');
- } else {
- return "";
- }
- }
|