其他分享
首页 > 其他分享> > vue中使用video.js播放m3u8格式的视频(动态设置src属性)

vue中使用video.js播放m3u8格式的视频(动态设置src属性)

作者:互联网

vue中使用video.js播放m3u8格式的视频

下载video.js

yarn add video.js
yarn add videojs-contrib-hls // 播放hls流需要的插件(关键)

在main.js中引入video.js

// 引入videojs
import Video from 'video.js'
import 'video.js/dist/video-js.css'
import 'videojs-contrib-hls'
Vue.prototype.$video = Video

html代码

      <video id="videoPlayer" style="width:100%;height:100%" class="video-js"></video>

设置自动播放

data中定义数据

   options: {
        autoplay: true, // 设置自动播放
        muted: true, // 设置了它为true,才可实现自动播放,同时视频也被静音 (Chrome66及以上版本,禁止音视频的自动播放)
        preload: 'auto', // 预加载
        controls: true // 显示播放的控件
      },
      player: null

methods中设置播放视频路径

    getVideo(nowPlayVideoUrl) {
      this.player = Videojs('videoPlayer', this.options)
      // 关键代码, 动态设置src,才可实现换台操作
      this.player.src([
        {
          src: nowPlayVideoUrl,
          type: 'application/x-mpegURL' // 告诉videojs,这是一个hls流
        }
      ])
    }

写入视频路径即可

    this.getVideo(“视频路径”)

坑:

1.直接在video改变src属性视频是不会切换的

 // 关键代码, 动态设置src,才可实现换台操作
      this.player.src([
        {
          src: nowPlayVideoUrl,
          type: 'application/x-mpegURL' // 告诉videojs,这是一个hls流
        }
      ])

2.如果你第一次渲染没问题,但从这个页面跳到别的页面,再跳回来,bug出现了

 beforeDestroy() {
    //  组件销毁时,清除播放器
    if (this.player) {
      this.player.dispose() // 该方法会重置videojs的内部状态并移除dom
    }
  },

标签:src,vue,m3u8,hls,js,player,video,videojs
来源: https://blog.csdn.net/weixin_45670926/article/details/114072389