vue使用萤石云监控视频/录像回放功能踩坑记录

vue使用萤石云监控视频/录像回放功能踩坑记录

这两天在搞PC和移动端的萤石云录像回放功能,踩坑不少,记录一下。

1、版本问题

之前同事采用的是本地js引入的方式使用萤石云,不知道哪个版本,出现录像回放功能首次进入可以播放,点击暂停再次播放就不能播放问题。后换为npm依赖引入的方式,但是有的版本本地可以使用,线上打包部署后出现白屏。。。很坑,不断尝试,现使用 ezuikit-js: 7.7.0 ,版本,较为稳定,没发现什么问题。

2、销毁问题

退出页面时一定要执行stop方法,并销毁EZUIKit实例!

不要在beforeDestroy生命周期中执行销毁操作!

不销毁实例会出现离开页面后依旧有监控声音并且占内存问题

在beforeDestroy生命周期中销毁会出现报错无法成功销毁并且下次进入页面播放器初始化失败

推荐在beforeRouteLeave中执行销毁操作(执行完别忘了next放行)

beforeRouteLeave(to,from,next){
   // 我将实例挂载在window上,不挂应该也可以
   //为了销毁做了很多尝试,挂载在window上就是其中一步
   // 后来发现不能在beforeDestroy中执行销毁才是关键,代码懒得改了
    if (window.ezukitPlayer) {
      window.ezukitPlayer.stop()
      window.ezukitPlayer = null
    }
    //以下是我自己之前尝试用删除dom方式进行销毁
    let ezudemo = this.$refs['ezuikitPlayer']
    let playcon = document.getElementById("ezuikit-playback-wrap")
    playcon
      ? ezudemo.removeChild(playcon)
      : "";
    let playcons = document.getElementById("ezuikit-player-wrap")
    playcons
      ? ezudemo.removeChild(playcons)
      : "";
    next()
  },
3、官方轻应用模板问题

在这里插入图片描述
如果你尝试过你就会发现,虽然官方支持创建自定义模板,但是根本没你编辑后保存会发现模板根本没有变化,比如我之前想录像回放默认为本地存储播放,删掉云存储按钮后保存后发现根本没有变化。。。官方文档概述更是一言难尽

想要默认本地存储播放录像视频只需要改动这行

// 官方模板地址
url: "ezopen://open.ys7.com/AA2615287/1.cloud.rec",
// 改为这样,去掉地址中的cloud就可以默认本地存储播放
url: "ezopen://open.ys7.com/AA2615287/1.rec",
4、小问题
// 这是官方的回放模板,如果想要改为直播只需要把template改为pcLive,url改为直播地址
      this.ezukitPlayer = new EZUIKit.EZUIKitPlayer({
        id: 'ezuikit-playback',
        width,
        height,
        template: 'pcRec',
        url,
        accessToken,
        handleSuccess() {
          that.isfinish = true
        },
        handleError() {
          that.isfinish = true
        },
      })
      window.ezukitPlayer = this.ezukitPlayer

小问题就是我们这时候实例挂载在id为ezuikit-playback的dom上面,但是编译完会发现这个dom的id变为ezuikit-playback-wrap,会在后面加上一个-wrap,如果有需要通过id操作dom的时候需要注意这个问题

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js萤石云监控可以通过以下步骤实现全屏功能。 首先,在Vue.js的组件中,需要引入萤石云监控的SDK,以便能够与监控设备进行交互。可以通过在`<head>`标签中引入SDK的链接,或者使用NPM包管理工具进行安装。 接下来,在Vue.js的组件中,创建一个DOM元素,用于显示监控画面。可以使用`<div>`或者`<canvas>`等标签来创建DOM元素。 然后,在Vue.js的`mounted`生命周期钩子函数中,实例化萤石云监控SDK,并将SDK的实例与之前创建的DOM元素进行绑定,以便能够将监控画面显示在这个DOM元素中。 在绑定完成后,可以通过调用SDK实例的方法,来加载监控设备的视频流,并将视频流显示在之前创建的DOM元素中。 最后,实现全屏功能可以通过在Vue.js的组件中添加一个按钮或者其他的交互元素,并在点击事件中调用浏览器的全屏API来实现。可以通过`document.documentElement.requestFullscreen()`或者`element.requestFullscreen()`方法来进入全屏模式,其中`element`是之前创建的DOM元素。 需要注意的是,在进入全屏模式时,需要浏览器的支持,不同的浏览器可能有不同的API调用方式。在调用全屏API之前,最好先进行一些兼容性检测,以确保在不同浏览器上都能正常运行。 以上就是使用Vue.js萤石云监控实现全屏功能的基本步骤。具体的实现细节还需要根据具体的项目情况来调整和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值