使用flv.js播放视频

npm install --save flv.js

在这里插入图片描述

<template>
  <div class="video">
   <video
       class="videoPlay"
       autoplay
       controls
       muted
       id="videoElement"
     ></video>
   </div>
</template>
<script>
import flvjs from 'flv.js'
export default {
  data () {
    return {
      flvPlayer: null,
      url: ''
    }
  },
  mounted () {
    this.$nextTick(() => {
      // url为播放视频的路径,type可以是 'flv',也可以是'mp4'
      this.createVideo ('', '')
    }
  },
  beforeDestroy () {
    if (this.flvPlayer) {
      this.destoryVideo(this.flvPlayer)
    }
  },
  methods: {
    createVideo (url, type) {
      if (flvjs.isSupported()) {
        var videoElement = document.getElementById('videoElement')
        this.flvPlayer = flvjs.createPlayer(
          {
            type: type,
            isLive: true,
            hasAudio: false,
            url: url
          },
          {
            enableWorker: false, // 不启用分离线程
            enableStashBuffer: false, // 关闭IO隐藏缓冲区
            reuseRedirectedURL: true, // 重用301/302重定向url,用于随后的请求,如查找、重新连接等。
            autoCleanupSourceBuffer: true, // 自动清除缓存
            fixAudioTimestampGap: false
          }
        )

        this.flvPlayer.attachMediaElement(videoElement)
        // this.flvPlayer.load();

        if (this.url !== '' && this.url !== null) {
          this.flvPlayer.load()
          this.flvPlayer.play()
        }
      }
      this.flvPlayer.on(flvjs.Events.ERROR, (errType, errDetail) => {
        // alert('网络波动,正在尝试连接中...');
        if (this.flvPlayer) {
          this.reloadVideo(this.flvPlayer)
        }
      })
    },
    reloadVideo (flvPlayer) {
      this.destoryVideo(flvPlayer)
      // this.url为视频播放的路径
      this.createVideo(this.url, 'flv')
    },
    destoryVideo (flvPlayer) {
      flvPlayer.pause()
      flvPlayer.unload()
      flvPlayer.detachMediaElement()
      flvPlayer.destroy()
      flvPlayer = null
    }
  }
}
</script>
<style lang='less' scoped>
</style>
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值