vue中关于flv.js的心得操作

1 篇文章 0 订阅

项目中做实时监控,我选择了b站的flv.js没想到这么坑,本人做的一屏同时展示4个画面
一定要加destroy生命周期

export default {
  data() {
    return {
     //存放视频直播的数组
      list: [],
    }
  },
    methods:{
     	video(){//视频列表接口,将拿到数据放入数组
	      videoList.get().then(res=>{
	        this.list = res.data.slice(0,4)
	        this.list.forEach((item,index)=>{
	          item.player = null
	          item.id = index + 1    
	        })
	      })
	   	 },
	   	 lazyready(){//循环视频数据,动态生成视频
          this.list.forEach((item,index)=>{  
           
          if (flvjs.isSupported()) {

            let videoElement = document.getElementById("video" + item.id);
            if(item.player){
              item.player.pause()
              item.player.unload()
              item.player.detachMediaElement()
              item.player.destroy()
              item.player= null
            }
            item.player = flvjs.createPlayer({
              type: "flv", //=> 媒体类型 flv 或 mp4
              isLive: true, //=> 是否为直播流
              hasAudio: false, //=> 是否开启声音
              stashInitialSize: 128,// 减少首桢显示等待时长
              url: `ws://101.37.149.36:8201/rtsp/${item.id}/?url=${item.url}`
            });
            item.player.attachMediaElement(videoElement); //=> 绑DOM
            item.player.load();
            item.player.play();
            } else {
                alert('不支持播放');
            };
           
        })
   	  },
      beforeDestroy () {
	    this.list.forEach((item)=>{
	      item.player.pause()
	      item.player.unload()
	      item.player.detachMediaElement()
	      item.player.destroy()
	      item.player= null
	    })
  	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值