海康威视WebSDK_V3.3.0 集成vue2项目避坑+解决方案

这篇具有很好参考价值的文章主要介绍了海康威视WebSDK_V3.3.0 集成vue2项目避坑+解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近新需求项目集成WebSDK_V3.3.0的视频插件,开发过程中遇到了一些问题,如下:

  1. 无法正确引入插件/InitPlugin报错
  2. 使用文档中写的I_DestroyPlugin报错并且再次Init插件后 无法正常播放,报错如下:
    i_insertobjectplugin,javascript,前端,开发语言

如果你也有类似问题请往下看

首先 开发包如下:
i_insertobjectplugin,javascript,前端,开发语言

1.无法正确引入插件/InitPlugin报错

首先 确认你已经正确引入了开发包的demo / codebase 路径下的 jsVideoPlugin-1.0.0.min.js,webVideoCtrl.js 两个文件,(放到项目的静态资源路径下) ,并且安装了插件_HCWebSDKPlugin.exe_ ,

import '../../../public/static/haikangV2/codebase/webVideoCtrl'
//若使用 import a from path 后面就要用 a.I_InitPlugin 我这里直接improt就直接使用webVideoCtrl的函数了

只需要引入这一个就行

然后在mounted时,进行插件的init,以下是我的代码。

mounted() {
    const _this = this
    //setTimeout不是必须哈
    setTimeout(() => {
      this.InitPlugin()
    }, 200)
    _this.$nextTick(() => {
      $(window).bind({
        resize: function () {
          _this.resizeView()
        }
      })
    })
  },
InitPlugin() {
      I_InitPlugin({
        bWndFull: true,
        iWndowType: _this.reviewdialogVisible === false ? 2 : 1,
        bDebugMode: true,
        // ... 其他回调函数的定
        cbInitPluginComplete: function () {
          // console.log('插件初始化')
          I_InsertOBJECTPlugin("divPlugin").then(() => {
            _this.checkInit = true
          }, () => {
            _this
                .$confirm(_this.$t('common.WhetherToDownload'), _this.$t('common.notice'), {
                  confirmButtonText: _this.$t('button.confirmBtn'),
                  cancelButtonText: _this.$t('button.cancelBtn'),
                  type: 'warning'
                })
                .then(() => {
                  window.open('../config/HCWebSDKPlugin.exe')
                })
                .catch(() => {
                  _this.$message.info(_this.$t('common.cancel'))
                })
          });
        },
      })
    },

如果此时你的插件不能正常工作,并且在demo里面能正常工作,那么现在要去他的源代码中改动一些东西:
首先格式化一下引入的两个文件,在webVideoCtrl.js中 能找到下面的代码:
i_insertobjectplugin,javascript,前端,开发语言原先有个获取dirName方法,就是获取webVideoCtrl.js自己的文件路径前缀,通过这个路径拼接再去找到jsVideoPlugin.js,但是vue结构下打包后这个文件路径获取肯定不对,因此修改为如下代码:

this.I_InitPlugin = function (options) {
            m_utilsInc.extend(m_options, options);
            //改动部分
            
            if ('object' === typeof exports && typeof module !== 'undefined') {
                require(['./jsVideoPlugin-1.0.0.min.js'], function (o) {
                    window.JSVideoPlugin = o.JSVideoPlugin
                    if (options.cbInitPluginComplete) {
                        options.cbInitPluginComplete()
                    }
                })
            } else if ('function' === typeof define && define.amd) {
                require(['./jsVideoPlugin-1.0.0.min.js'], function (o) {
                    window.JSVideoPlugin = o.JSVideoPlugin
                    if (options.cbInitPluginComplete) {
                        options.cbInitPluginComplete()
                    }
                })
            } else {
                m_utilsInc.loadScript('./jsVideoPlugin-1.0.0.min.js', function () {
                    if (options.cbInitPluginComplete) {
                        options.cbInitPluginComplete()
                    }
                })
            }
            window.addEventListener("resize", function () {
                if (m_pluginOBJECT !== null) {
                    var oElem = $("#" + m_options.szContainerID);
                    m_pluginOBJECT.JS_Resize(oElem.width(), oElem.height())
                }
            });
            window.addEventListener("unload", function () {
            })
        };

2.使用文档中写的I_DestroyPlugin报错并且再次Init插件后 无法正常播放

这个问题我和海康开发人员沟通,但是并未获得有效恢复,我的解决办法是,使用_jsVideoPlugin-1.0.0.min.js_中的另外两个函数JS_HideWnd和JS_ShowWnd代替Destory和重新init,格式化_jsVideoPlugin-1.0.0.min.js_就能找到这两个函数。
i_insertobjectplugin,javascript,前端,开发语言
此时,在webVideoCtrl.js中新建两个函数

this.I_HideWnd = function () {
     m_pluginOBJECT.JS_HideWnd()
this.I_ShowWnd = function () {
        m_pluginOBJECT.JS_ShowWnd()
    };

然后在自己的页面调用这两个函数就可以实现hide,show
以下是我的代码

注意请先stop当前流再销毁/hide插件,为了最大限度保证插件下次show/Init正常

 let stopAll = () => {
      return new Promise(resolve => {
        I_StopAllPlay().then(() => {		//先stop当前播放的视频,全部stop再hide
          resolve('success');
        });
      });
    };

    stopAll().then(res => {
      if (res === 'success') {
        try {
          // 在I_StopAllPlay()异步操作完成后再执行
          I_HideWnd()
        } catch (e) {
          console.error('销毁失败', e);
        }
      }
    });

//合适的地方
I_ShowWnd()

以下是运行效果:
运行效果文章来源地址https://www.toymoban.com/news/detail-792537.html

到了这里,关于海康威视WebSDK_V3.3.0 集成vue2项目避坑+解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue2使用rtsp视频流接入海康威视摄像头(纯前端)

    海康威视官方的RTSP最新取流格式如下: rtsp://用户名:密码@IP:554/Streaming/Channels/101 用户名和密码 IP就是登陆摄像头时候的IP(笔者这里IP是192.168.1.210) 所以笔者的rtsp流地址就是 rtsp://用户名:密码@192.168.1.210:554/Streaming/Channels/101 1.1关闭 萤石云的接入 1.2 调整视频编码为H.264 在此下载

    2024年04月26日
    浏览(41)
  • vue +WebSDK_V3.3.0/本地调试和打包成dist部署还有所不同!!

    1.在index.html中引入js文件 2.在vue中使用需要修改webVideoCtrl.js文件中引入jsVideoPlugin-1.0.0.min.js的方式如下 在使用到页面中 html js 小小功能整了一天:记住以下要点 1.在网上找了几篇文章cv的时候在index.html以内的文件名错了。。。。离离原上谱,,, 2.最开始后端大哥教我 无需安

    2024年03月13日
    浏览(39)
  • vue项目接入海康威视H5player.js

    插件下载 点击跳转海康威视H5player下载地址 首先我们需要将下载下来的程序包内的JS文件放到我们自己的项目文件 在utils里面还要放置h5player.min.js文件进去 下方代码中解释 注意:一定要放在vue中的public文件夹中 否则会报错 在public/index.html文件中引入 在页面中使用 这样就O

    2024年02月12日
    浏览(32)
  • 可视化大屏中用vue实现海康威视AR鹰眼画面(物联网项目—涉及硬件设备的连接)

    具体效果可参照海康公众号的演示视频https://mp.weixin.qq.com/s/K7C8BJGgwq3E1woXK7F6SQ 项目效果图: 能够在项目中播放鹰眼视频,其实前端的代码很少。 因为海康威视的AR鹰眼视频已经做成了一个集成控件,也就是一套完整的系统,相当于AR画面里面的东西都不需要重新写,只需要在

    2024年02月05日
    浏览(35)
  • 在web页面使用webVideoCtrl.js集成海康威视

    使用的是webSDK3.3版本的集成包,在项目上接入海康威视的视频 1.在初始化成功后想去调用登录接口,结果一直报错,如图1-1 2.在两个页面都接入海康威视的视频时,两个页面做切换会报错,导致页面没有被销毁,如图1-2 图1-1 图1-2 问题1:登录报错是因为用到了websocket,用异步

    2024年01月20日
    浏览(48)
  • vue2项目 使用海康视频h5player@2.0版本

    一、下载开发包         我们需要去海康官网下载h5player@2.0版本的一些用到的文件 二、引入开发包         下载之后我们把下载的文件打开把bin里的文件移动到pubilc文件里,可以自己单独建一个文件放在里面 注意:一定要放在vue中的public文件夹中 否则会报错 三、引用下载

    2024年02月03日
    浏览(39)
  • vue+海康威视视频web插件开发

    下载地址:海康威视官网 下载页面 文件解压后的目录 运行bin文件下的VideoWebPlugin.exe demo/demo_window_integration.html 包含了插件所有功能的,可参照此demo来开发、验证功能、排查问题 demo/demo_window_simple_playback.html.html  视频回放,可在此基础上二次开发 demo/demo_window_simple_preview.ht

    2023年04月08日
    浏览(74)
  • Java-Spring Boot 集成海康威视明眸门禁 布防|报警|回调|获取事件|查询用户信息

    最近做门禁的集成,突然感觉海康这个东西挺有意思的,于是记录一下。 好了废话不多说,开始上环境、代码 本集成是海康-设备网络集成(以人为中心) 环境:windows 开发工具:IDEA JDK版本:JDK-11.0.12 海康jar包:怎么引入都行(本地引入、maven上传到私服)           

    2024年04月15日
    浏览(83)
  • vue+js+海康web开发包接入海康威视摄像头

    一、登录海康开放平台下载web开发包,下载需要先登录海康账号,没有的需先注册一个。 海康开放平台web开发包下载地址:https://open.hikvision.com/download/5cda567cf47ae80dd41a54b3?type=10id=4c945d18fa5f49638ce517ec32e24e24 二、将web开发包引入vue项目 下载后解压的包目录如下: 将把webs下的整个

    2024年02月02日
    浏览(41)
  • vue3实现海康威视根据海康插件进行监控实时预览和回放功能

    因为我的文章已经写过基于vue实现海康web插件进行视频播放开箱即用文章,这个文章是利用 vite+vue3+js 进行编写的,大致内容跟vue2一样,拿过去能直接用。 至于我为什么要用js而不用ts,因为海康提供的三个脚本为js语言的,ts尝试过一次,我道行太浅,没搞明白。 这些代码是

    2024年02月05日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包