使用的包

"video.js": "^7.6.6",
"videojs-contrib-hls": "^5.15.0",

案例

.vue部分

		<video
          id="my-video"
          class="video-js vjs-default-skin vjs-big-play-centered"
          width="600"
          height="500"
          controls
          muted
          preload="auto"
          autoplay
        >
          <source :src="liveUrl" type="application/x-mpegURL" />
        </video>

.js部分

变量说明:
:src中使用了变量“liveUrl”,需要自己提前赋值,这里不贴了
videojsObj;预设为null

		if (that.videojsObj === null) {//如果对象为空,则生成video.js对象
          that.$nextTick(() => {
            that.videojsObj = videojs("my-video",
              function () {
                this.load(that.liveUrl);//加载播放地址
                this.play();//开始播放
              });
          })
        } else {//对象已存在时,直接重新加载视频流地址
          that.videojsObj.pause();//暂停播放
          that.videojsObj.src(that.liveUrl);//设置新的直播流
          that.videojsObj.load(that.liveUrl);//重新加载
          that.videojsObj.play();//开始播放
        }

注意

离开页面时,把对象释放掉,不然后台会一直请求.ts片段

this.videojsObj.dispose();
Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐