海康威视WEB视频预览


        近期,公司一升级项目须要在线视频预览,用到海康威视的硬盘录像机,接手以后发现原有的组件(NetVideoActiveX23.ocx),登陆接口和获取设备、通道等接口都正常调用,预览接口StartRealPlay老是返回失败,没找到缘由,只能从新写了一遍。这里记录一下用WebComponentsKit对海康威视进行预览时的心得,但愿对各位有所帮助。javascript

  •  WebComponentsKit和NetVideoActiveX23的登陆端口不同,这里要特别注意,WebComponentsKit经过HTTP端口登陆,而NetVideoActiveX23则是经过一个叫服务端口来登陆。具体能够登陆硬盘录像机的配置页面进行查看。
  •  WebComponentsKit支持域名登陆和IP登陆,NetVideoActiveX23只支持IP登陆
  • WebComponentsKit登陆接口为异步模式,回调写在SUCCESS中,这个看demo就知道了。
    var iRet = WebVideoCtrl.I_Login(IP, protocol, Port, Username, Password, {
    
            success: function (xmlDoc) {
            },
            error: function () {
            }
        });
  • 预览接口I_StartRealPlay,默认显示在当前选中窗口。若是要指定视频显示在哪一个窗口,经过参数iWndIndex来指定,iWndIndex从0开始。
    var iRet = WebVideoCtrl.I_StartRealPlay(IP, { iWndIndex: wndIndex, iStreamType: 1, iChannelID: iChannelID,bZeroChannel: false})

             能够经过上述方式来同时预览多个视频通道java

g_iWndIndex = 0; 

    for (var i = 0; i < channels.length; i++) {
            (function (index) {
                setTimeout(function () {
                    StartRealPlay(IP, index, index + 1);
                    g_iWndIndex++;
                }, 50); 
            })(i);
    }
  • 有时调用预览接口失败,发现webVideoCtrl.js中p内容为空,n为-1,没找到缘由(知道的朋友能够回复,谢谢),暂时添加if (S != undefined)跳出不处理(还没发现影响)
    var S = p[n];if (S != undefined) S.bShttpIPChannel = P

            以上若有错漏,恳请指出,方便你们共同窗习!web