海康web无插件开发,多屏同时预览

先附上链接海康web无插件

通道后端生成返回,所以我这里不需要模拟

//js文件,main.js引入

export default WebVideo = {
  // 全局保存当前选中窗口
  //可以不用设置这个变量,有窗口参数的接口中,不用传值,开发包会默认使用当前选择窗口
  //g_iWndIndex: 0,
  indexAll:{},    //窗口集合
  //插件宽高  (单位px,100%默认撑满插件容器)
  szWidth: '100%',
  szHeight: '100%',
  // 分屏类型 1:1*1  2:2*2  3:3*3  
  iWndowType: 1,
  // ip
  szDeviceIdentify:''
  // 登录信息
  userInfo:{},
  // 初始化插件
  init: function (options) {
    return new Promise(function (resolve, reject) {
      WebVideo.szDeviceIdentify = options.ip + "_" + options.port;
      WebVideo.userInfo = options;

      let iWndowType = options.iWndowType ?? WebVideo.iWndowType;

      WebVideoCtrl.I_InitPlugin(WebVideo.szWidth, WebVideo.szHeight, {
        //是否支持单窗口双击全屏,默认支持 true:支持 false:不支持
        bWndFull: true,
        //插件背景颜色  bg,子窗口bg,窗口边框,窗口边框选中
        szColorProperty: "plugin-background:#18293c; sub-background:#18293c; sub-border:#18293c; sub-border-select:#0000ff", //2:PS 11:MP4
        //分屏
        iWndowType: iWndowType,
        //选中当前窗口的回调
        cbSelWnd: function (xmlDoc) {
          WebVideo.g_iWndIndex = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10);
          console.log(WebVideo.g_iWndIndex)
        },
        // 插件初始化完成回调,必带项
        cbInitPluginComplete: () => {
          WebVideoCtrl.I_InsertOBJECTPlugin(options.domID);
          resolve();
        }
      })
    })

  },
// 登录
  loginOn: function(){
    return new Promise(function (resolve, reject) {
    let info = WebVideo.userInfo;

    if ("" == info.ip || "" == info.port) {
      return;
    }
    
    var iRet = WebVideoCtrl.I_Login(info.ip, 1, info.port, info.username, info.password, {
      success: function (xmlDoc) {    
        console.log("登陆成功");        
        setTimeout(function () {
          resolve();
        }, 10);
      },
      error: function (status, xmlDoc) {
        console.log("登录失败!", status, xmlDoc);     
      }
    });

    if (-1 == iRet) {
      console.log("已登录过!");
    }
  })


  },
// 退出登录
  logout: function(){
    if (null == webVideo.szDeviceIdentify) {
      return;
    }

    var iRet = WebVideoCtrl.I_Logout(webVideo.szDeviceIdentify);
    if (0 == iRet) {
      console.log("退出成功!");
    } else {
      console.log("退出失败!");
    }
  },
/**
   * options={
   *  iWndIndex-播放窗口(不传默认为0)
   *  iStreamType 码流类型 1-主码流,2-子码流,默认使用主码流预览
   *  iChannelID 播放通道号,默认通道 1
   *  bZeroChannel 是否播放零通道,默认为 false
   *  iPort RTSP 端口号,可以选择传入,如果不传,开发包会自动判断设备的 RTSP 端口
   * }
   */
  // 开始预览  设备标识(模拟通道),窗口编号
  startRealPlay: function(iChannelID,iWndIndex ){
        
    const videoIndex = WebVideoCtrl.I_GetWindowStatus(iWndIndex);

    if (null == WebVideo.szDeviceIdentify) {
      return;
    }

    var startRealPlayVideo = function () {
      WebVideoCtrl.I_StartRealPlay(WebVideo.szDeviceIdentify, {
        iChannelID: iChannelID,
        bZeroChannel: false,
        iStreamType: 2,
        iWndIndex:iWndIndex,
        success: function () {
            console.log('预览成功')
        },
        error: function (status, xmlDoc) {
          if (403 === status) {
              console.log('设备不支持Websocket取流')
          } else {
              console.log('预览失败')
          }
        }
      });
    };

    if (videoIndex  != null) {// 已经在播放了,先停止
      WebVideoCtrl.I_Stop({
        success: function () {
          startRealPlayVideo();
        }
      });
    } else {
      startRealPlayVideo();
    }
    
  },
// 停止预览
  stopRealPlay: function(iWndIndex){
      WebVideoCtrl.I_Stop({
        iWndIndex:iWndIndex,
        success: function () {
          console.log('停止预览成功')
        },
        error: function () {
          console.log('停止预览失败')
        }
      });
  },
	
//全屏 --  先点击窗口,再触发事件
clickFullScreen() {
    WebVideoCtrl.I_FullScreen(true);
}

//根据窗口编号全屏
//想了好多办法,最后改了源码... ...
//有更好的办法,请私信我哦 ( ̄▽ ̄)/
//webVideoCtrl.js
//this.I_FullScreen = function (e) {
//   ct() ? p.JS_FullScreenSingle(f) : p.HWP_FullScreenDisplay(e)
//}
//修改为
//this.I_FullScreen = function (wndi,e) {
//   ct() ? p.JS_FullScreenSingle(wndI) : p.HWP_FullScreenDisplay(e)
//}
	
clickFullScreen(iWndIndex) {
   WebVideoCtrl.I_FullScreen(iWndIndex,true);
}

}
 <div id="divPlugin" class="plugin full" ref="plugin"></div>
//vue.js

videoPlay(){
 	let that = this;
	let optionInfo = {
        iWndowType: 2,
        domID: "divPlugin",
        ip: options[0].ipUrl,	//ip,port,account,password,都是一样的,取了第一个
        port: options[0].port,
        username: options[0].userName,
        password: decrypt(options[0].password),
      };
      that.$HK.init(optionInfo).then(() => {
        that.$HK.loginOn().then(() => {
          for (let i = 0; i < 4; i++) {
            that.$HK.startRealPlay(that.list[i].deviceChannel, i);
          }
        });
      });
}


close(){
	//1.this.$HK.停止预览
	//2.this.$HK.退出登录
	//一定要退干净,不然出bug
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
### 回答1: 海康web插件是指海康威视公司的监控软件支持无需安装任何插件或软件也可以在浏览器中使用,减少了安装和配置的复杂程度,因此使用更加简便。Apache是开源的Web服务器软件,可以在各种操作系统上运行,包括Windows,Linux等。它是目前世界上最流行的Web服务器之一,支持多种编程语言,包括Java、Python、PHP等。 在海康web插件中使用Apache作为Web服务器的一个好处是,Apache具有很好的性能和健壮的安全性,而且可以自定义配置,让用户可以灵活地管理和控制Web服务器的各项设置。通过使用Apache,可以提升海康web插件监控系统的性能和稳定性,同时也可以提高系统的可扩展性和可维护性。 总的来说,海康web插件与Apache的结合使用能使监控系统更加可靠、高效、安全和易于管理,提高了企业的信息化水平。 ### 回答2: 海康威视是一家世界领先的视频监控产品和解决方案供应商,其开发Web插件Apache是一种基于Apache服务器的Web观看工具,它可以通过网络实时观看监控设备的视频画面,而无需额外的插件。这种技术极大地简化了视频监控的操作流程,提高了用户的使用便利性和安全性。海康Web插件Apache广泛应用于各种安防场景,包括公共安全、交通管理、城市监控、金融、教育等领域。它具有可靠性高、兼容性强、实时性强、安全性高等优点,被广泛誉为安防监控领域的标杆产品。同时,海康威视还致力于不断地进行技术创新和研发,不断提升自己在安防领域的技术实力和市场竞争力,为客户提供优质的产品和服务。 ### 回答3: 海康威视是一家专业从事视频监控产品和解决方案服务的高科技企业。他们所获得的奖项和业内口碑在行业内都非常优秀。 海康威视Web插件 Apache 是一种先进的源代码管理系统。它在视频监控领域得到了广泛的应用,因为它可以为用户提供一种简单、易用和高效的软件管理工具。同时,该系统还可以实现代码的版本控制和协作开发,从而满足项目的需要。 通过无插件 Apache,海康威视为用户提供了一个高级的管理体验。该系统使用了最新的技术,可以确保高速、可靠的文件传输,无需任何插件,同时还可以为业界提供强大的安全性和可靠性保证。 总而言之,海康威视Web插件 Apache 系统是一种非常优秀的源代码管理系统,它能够为用户和项目提供优秀的管理体验和高效的业务解决方案,是海康威视的主要产品之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值