如何在vue工程中使用flvJS

在vue工程中使用flvJS demo

<video ref="videoElement"></video>

import flvjs from 'flv.js/dist/flv.min.js'
export default {
  props: {
    url: { type: String, default: '' },
    type: { type: String, default: 'flv' },
    isAutoPlay:{ type: Boolean, default: false },
    height: { type: Number, default: 360 },
    width: { type: Number, default: 100 },
    poster: {type:String,default:"/image/index/logo.png"},
  },
  data() {
    return {
      flvPlayer: null
    }
  },
  destroyed() {
    this.destroyPlayer()
  },
  methods: {
    play() {
      if (this.url && flvjs.isSupported()) {
        if (this.flvPlayer) {
          this.destroyPlayer()
        }

        let videoElement = this.$refs.videoElement // document.getElementById("videoElement");
        this.flvPlayer = flvjs.createPlayer(
          {
            type: this.type,
            enableWorker: true, //浏览器端开启flv.js的worker,多进程运行flv.js
            isLive: true, //直播模式
            hasAudio: false, //开启音频
            hasVideo: true,
            stashInitialSize: 128, //128
            enableStashBuffer: false, //播放flv时,设置是否启用播放缓存,只在直播起作用。
            url: this.url,
            lazyLoad:false,
           // lazyLoadMaxDuration:2,
            reuseRedirectedURL:true,
          //  deferLoadAfterSourceOpen:true,
           // rangeLoadZeroStart:true
            //url: 'http://172.16.26.70:8082/live?srv=1&app=live&stream=cctv1',
            //url:'http://player.alicdn.com/video/aliyunmedia.mp4',
          }
        )
       
        flvjs.LoggingControl.enableInfo=false;
        flvjs.LoggingControl.enableWar=false;
        flvjs.LoggingControl.enableError=false;
        this.flvPlayer.attachMediaElement(videoElement)
        this.flvPlayer.load() 
        this.flvPlayer.play()
        var $this=this;
        //flv暂停监听
        videoElement.addEventListener('pause', function () { //暂停开始执行的函数
          let isFullScreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen
          if (!isFullScreen) {
              console.log("暂停开始执行函数")
              $this.destroyPlayer()
          }
       });
        this.flvPlayer.on('error', err => {
          Toast.fail("播放失败!")
        //  console.log('err', err);
          $this.destroyPlayer()
        });
      }
    },//只允许播放一个video
    onlyPlayOne() {
      var video = document.getElementsByTagName('video')
      // 暂停函数
      function pauseAll() {
        var self = this
        ;[].forEach.call(video, function (i) {
          // 将audios中其他的audio全部暂停
          i !== self && i.pause()
        })
      }
      // 给play事件绑定暂停函数
      ;[].forEach.call(video, function (i) {
        i.addEventListener('play', pauseAll.bind(i))
      })
    },
    //销毁flv player
    destroyPlayer() {
      if (this.flvPlayer) {
        try{
            this.flvPlayer.pause()
            this.flvPlayer.unload()
            this.flvPlayer.detachMediaElement()
            this.flvPlayer.destroy(true)
            this.flvPlayer = null
        }catch(e){
          //TODO handle the exception
        }
      }
     
    } ,
     //监听全屏
    listenFullScreen() {
      ;['fullscreenchange', 'webkitfullscreenchange', 'mozfullscreenchange'].forEach((item, index) => {
        window.addEventListener(item, function () {
          let isFullScreen = document.fullScreen || document.mozFullScreen || document.webkitIsFullScreen
          if (isFullScreen) {
            //  进入全屏
            if (window.plus) {
              plus.screen.lockOrientation('landscape-primary') //横屏
            }
          } else {
            //  退出全屏
            if (window.plus) {
              plus.screen.lockOrientation('portrait-primary') //竖屏
            }
          }
        })
      })
    },
  }
}
</script>
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值