vue+flv.js实现视频播放

一、使用步骤

1.引入库

代码如下(示例): npm install --save flv.js  下载flv依赖

导入:import flvjs from "flv.js";

2.读入数据

使用video标签引入
          <video
            id="videoElement"
            controls
            autoplay
            muted
            controlsList="nodownload"
            :disablePictureInPicture="true"
            v-show="conditions"
            style="width: 100%; height: 100%; object-fit: fill"
          ></video>

1.获取视频流地址并使用

     createVideo() {
      getCameraVideoAPI({ cameraId: id }).then((res) => {

        if (res.success) {
          const that = this;
          this.flvPlayerList = [];

          if (flvjs.isSupported()) {
            var videoElement = document.getElementById("videoElement");
            videoElement.addEventListener("click", mouseHandler, false);
            function mouseHandler(event) {
              event.preventDefault();
            }//这个我是用来防止用户点击,可不加
            that.flvPlayer = flvjs.createPlayer({
              type: "flv",
              url: res.result,
              isLive: true,
              hasAudio: false, // 关闭声音
              reuseRedirectedURL: true, //重用301/302重定向url,用于随后的请求,如查找、重新连接等
              // cors: true,
              enableWorker: false, //不启用分离线程
              enableStashBuffer: false, //关闭IO隐藏缓冲区
              autoCleanupSourceBuffer: true, //对SourceBuffer进行自动清理缓存
              autoCleanupMaxBackwardDuration: 12, //    当向后缓冲区持续时间超过此值(以秒为单位)时,请对SourceBuffer进行自动清理
              autoCleanupMinBackwardDuration: 60, //指示进行自动清除时为反向缓冲区保留的持续时间(以秒为单位)。
              stashInitialSize: 128, // 缓存大小(kb)  默认384kb
              fixAudioTimestampGap: false,
            });
            this.flvPlayer.attachMediaElement(videoElement);
            // this.flvPlayer.attachMediaElement(document.getElementById('videojs-player' + model.index + "_" + this.pageId));
            that.flvPlayer.load();
            that.flvPlayer.play(); //不用打开
            that.flvPlayerList.push(that.flvPlayer);
          }
        }
      });
    },

2.有一个问题就是同时只能播放6个视频,超出6个视频会加载不出来,需要摧毁上一个视频,关闭视频的时候调用这个方法就好

    //销毁视频实例
    destoryVideo() {
      if (this.flvPlayerList.length) {
        this.flvPlayerList.forEach((item) => {
          console.log(item);
          item.unload();

          item.detachMediaElement();
        });
      }
      if (this.flvPlayer) {
        this.flvPlayer.unload();
        this.flvPlayer.detachMediaElement();
        this.flvPlayer.destroy();
        this.flvPlayer = null;
      }
    },

3.还有一个就是,flv视频在谷歌浏览器播放,如果你离开页面他会暂停在那,回来会从暂停的时间进行播放,所以为了解决这个,就监测用户进入离开,进入时重新调取视频,离开就销毁

  mounted() {

    document.addEventListener("visibilitychange", this.handleVisiable);

  },
  destroyed() {

    this.destoryVideo();
    document.removeEventListener("visibilitychange", this.handleVisiable);

    //清除计时器
  },
  methods: {


    //离开页面回来刷新视频
    handleVisiable(e) {
      switch (e.target.visibilityState) {
        case "prerender":
          // console.log("网页预渲染,内容不可见");
          break;
        case "hidden":
          // console.log("内容不可见,处理后台、最小化、锁屏状态");
          this.destoryVideo();
          break;
        case "visible":
          this.createVideo();
          break;
      }
    },
}


总结

okk就这样了

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vue-video-player是一个基于Vue.js视频播放器组件库,在Vue项目中使用该组件可以方便地实现视频播放功能。而flv.js是一个JavaScript实现FLV视频解码器,可以在浏览器中播放FLV格式的视频文件。 在使用vue-video-player组件时,如果需要播放FLV格式的视频,可以结合flv.js实现。首先,需要在Vue项目中引入flv.js的依赖库,可以通过npm安装或者在页面中直接引入flv.js的脚本文件。然后,在vue-video-player组件中配置相应的参数,使其支持FLV格式的视频。 假设已经引入了flv.js的依赖库,首先需要在Vue组件中注册vue-video-player组件。然后,在组件中通过设置config参数来配置播放器。其中,需要注意的是,将配置参数中的type设置为'flv',表示要播放视频FLV格式的。另外,还需要设置url参数,指定FLV视频的URL地址。 以下是一个简单的示例代码: ``` <template> <vue-video-player ref="videoPlayer" :options="playerOptions"></vue-video-player> </template> <script> import VueVideoPlayer from 'vue-video-player' import 'video.js/dist/video-js.css' export default { components: { VueVideoPlayer }, data() { return { playerOptions: { techOrder: ['flvjs'], sources: [{ type: 'flv', src: 'http://example.com/video.flv' }] } } } } </script> ``` 在上述代码中,首先导入了vue-video-player组件库,并设置了相关的样式。然后,在组件的data中定义了一个playerOptions对象,其中的techOrder属性按照数组顺序指定了优先使用flv.js播放视频。接着,在sources数组中设置了一个FLV格式视频的URL地址。 最后,在模板中引用vue-video-player组件,并通过:options属性将playerOptions传递给组件。这样配置完毕后,组件就可以正常地播放FLV格式的视频了。 总结起来,vue-video-player与flv.js配合使用可以实现Vue项目中对FLV视频播放。通过合理配置参数,我们可以在Vue项目中方便地使用vue-video-player来播放FLV视频

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值