VUE3项目大华摄像头WEB端开发

该文章已生成可运行项目,

1、下载WEB开发包

前往大华官网地址:(https://support.dahuatech.com/sdkindex/sdkExploit/267?IsDpValue=%2brSesyHc35SwoPzpUsL6AFdResJUzHZKcGdGR3d27us=),下载WEB开发包。

2、在项目中引入开发模块

  1. 解压下载的WEB开发包文件,把NVR/webs目录下的module文件引入项目的public目录
    在这里插入图片描述
    在这里插入图片描述

  2. 在index.html文件引入"PlayerControl.js"模块;在这里插入图片描述

3、封装大华摄像头视频播放方法


```html
<!-- 视频画面播放窗口 -->
<canvas id="canvas"></canvas>
<video id="video"></video>
 
```javascript
  /**
   * 播放视频
   * @param {Object} player 播放器实例
   * @param {String} ip 设备ip
   * @param {String} name 设备用户名
   * @param {String} pswd 设备密码
   * @param {String} canvasId 画布id
   * @param {String} videoId 视频id
   * @param {Number} channel 通道号,1开始
   */
  videoPlay(player, ip, name, pswd, canvasId, videoId, channel){
    var options = {
        wsURL: 'ws://'+ip+'/rtspoverwebsocket',
        rtspURL: 'rtsp://'+ip+'/cam/realmonitor?channel='+channel+'&subtype=0&proto=Private3',
        username: name,
        password: pswd,
        h265AccelerationEnabled: true
    };
    player = new PlayerControl(options);
    // console.log(player, channel);
    player.on('WorkerReady', function(){
        player.connect();  
    });
    player.on('DecodeStart', function(rs){
        console.log('start decode');
        console.log(rs);

    });
    player.on('PlayStart', function(rs){
        console.log('play');
        console.log(rs);
    });
    player.on('Error', function(rs){
        console.log('error');
        console.log(rs);
    });
    player.on('FileOver', function(rs){
        console.log('recorder play over');
        console.log(rs);
    });
    player.on('MSEResolutionChanged', function(rs){
        console.log('resolution  changed');
        console.log(rs);
    });
    player.on('FrameTypeChange', function(rs){
        console.log('video encode mode changed');
        console.log(rs);
    });
    player.on('audioChange', function(rs){
        console.log('audio encode changed');
        console.log(rs);
    });
    let canvasElement = document.getElementById(canvasId);
    let videoElement = document.getElementById(videoId);
    player.init(canvasElement, videoElement);
  }
  
  /**
   * 关闭播放
   */
  stopPlay(player){
     player&& player.stop();
     player&& player.close();
     player= null;
  }
本文章已经生成可运行项目
Vue2 项目中集成大华摄像头的 **WEB插件开发包**,以实现实时视频监控功能,主要涉及以下几个方面: ### ### 1. 准备工作 - 确保已经获取了大华官方提供的 **WEB插件开发包**(通常为 JavaScript SDK 或 WebComponent 形式)。 - 需要熟悉 Vue2 的组件化开发模式,以及生命周期钩子函数的使用方式。 ### ### 2. 开发步骤 #### #### 2.1 引入 SDK 文件 将大华提供的 JS SDK 文件放置于 `public` 目录下,例如:`/public/js/DahuaWebSDK.js`,然后在 `index.html` 中通过 `<script>` 标签引入: ```html <script src="/js/DahuaWebSDK.js"></script> ``` #### #### 2.2 创建摄像头组件 创建一个名为 `DahuaCamera.vue` 的组件,用于封装初始化逻辑和渲染视频容器: ```vue <template> <div> <div id="camera-container" style="width: 640px; height: 480px;"></div> <button @click="initCamera">初始化摄像头</button> </div> </template> <script> export default { name: &#39;DahuaCamera&#39;, methods: { initCamera() { const camera = new window.DahuaWebSDK.Camera({ container: &#39;camera-container&#39;, // 视频容器 ID rtspUrl: &#39;rtsp://admin:password@192.168.1.102:554/cam/realmonitor?channel=1&subtype=0&#39;, // RTSP 地址 [^3] useH5: true, // 是否启用 H5 播放器(无插件) success: () => { console.log(&#39;摄像头初始化成功&#39;); }, error: (err) => { console.error(&#39;摄像头初始化失败:&#39;, err); } }); } } }; </script> ``` #### #### 2.3 使用摄像头组件 在主页面或路由组件中引入并注册该组件: ```vue <template> <div id="app"> <DahuaCamera /> </div> </template> <script> import DahuaCamera from &#39;./components/DahuaCamera.vue&#39;; export default { components: { DahuaCamera } }; </script> ``` ### ### 3. 注意事项 - **跨域问题**:如果摄像头服务部署在不同域名下,需确保服务器配置了正确的 CORS 头信息。 - **HTTPS 要求**:现代浏览器对媒体设备访问有严格的 HTTPS 要求,建议在 HTTPS 环境下测试与部署。 - **兼容性**:大华 SDK 可能对浏览器版本有特定要求,建议在 Chrome、Edge 等主流浏览器中测试[^3]。 - **权限控制**:RTSP 地址中若包含用户名密码,请注意安全策略,避免泄露敏感信息。 ### ### 4. 常见问题处理 - 若出现视频无法播放,应检查 RTSP 地址格式是否正确,并确认摄像头处于在线状态。 - 如果 SDK 初始化失败,可以查看浏览器控制台日志,排查网络请求或脚本加载错误。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值