video的销毁和重构

单个video标签的销毁

 if (this.videoPlayer) {
        this.videoPlayer.dispose()
        this.videoPlayer = null
  }

多个video标签的销毁

// 比如:this.rtmpArr=[] 接受多个video的时候一定要给个长度 this.rtmpArr=new Array(num)  否则接受完获取不到this.rtmpArr的长度
if (this.rtmpArr.length > 1) {
        for (let i = 1; i < this.rtmpArr.length; i++) {
          this.rtmpArr[i].dispose()
        }
        this.rtmpArr = [] // 多个video销毁之后记得使this.rtmpArr为[],因为虽然销毁了但是内部还存在video的内置方法,重构再次赋值的时候会报错
      }

多个video标签的赋值

// 这里加this.$nextTick的原因是重构video之后不加会获取不到video标签导致下面videojs赋值后找不到元素报错
          this.$nextTick(() => {
            this.rtmpArr = new Array(this.multiScreen.length)
            for (let i = 1; i < this.multiScreen.length; i++) {
              this.rtmpArr[i] = videojs(this.multiScreen[i].id, {}, () => {
                this.rtmpArr[i].src({
                  type: 'rtmp/flv',
                  src: this.multiScreen[i]['live-address']
                })
              })
            }
         })

video标签的重构

 refactorVideo() {
        this.videoPlayer.dispose()
        this.$refs.videoArea.innerHTML = `<video id="livePlays" ref="videoPlayer" style="width:100%;height:100%"
        class="video-js vjs-default-skin vjs-big-play-centered hidden-controls" autoplay="true"
          controls></video>`
        if (this.rtmpArr.length > 1) {
          for (let i = 1; i < this.rtmpArr.length; i++) {
            this.rtmpArr[i].dispose()
          }
          this.rtmpArr = []
        }
        if (this.multiScreen.length > 1) {
          this.$nextTick(() => {
            let lis = this.$refs.urlList.getElementsByClassName('videoPictureArea')
            for (let i = 0; i < lis.length; i++) {
              lis[i].getElementsByClassName('videoPicture')[0].innerHTML = `<video style="width:182px;height:102px" id="${this.multiScreen[i + 1].id}" muted="true" autoplay="true"
                       class="video-js vjs-default-skin vjs-big-play-centered hidden-controls"></video>`
            }
          })
        }
      },
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力让自己的选择变得正确

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值