vue 配合 video.js 实现视频播放

1. 导入 video.js 包

npm install video.js -S

 npm install videojs-flash -S
 

2. 代码实现

<template>
  <div>
    <video
      id="my-video"
      class="video-js"
      controls
      preload="auto"
      width="640"
      height="264"
      :poster="videoTitleImg"
      data-setup="{}"
      ref="videoPlayer"

    >
      <source :src="videoSrc" type="video/mp4"/>
      <source src="MY_VIDEO.webm" type="video/webm"/>
      <div class="video-progress" @mousedown="onProgressMouseDown">
        <div class="video-played" ref="progressBar"></div>
      </div>
      <p class="vjs-no-js">
        To view this video please enable JavaScript, and consider upgrading to a
        web browser that
        <a href="https://videojs.com/html5-video-support/" target="_blank"
        >supports HTML5 video</a
        >
      </p>
    </video>


  </div>
</template>

<script>
import videoJs from 'video.js'

export default {
  props: {
    videoTitleImg: '',
    videoSrc: ''
  },
  data () {
    return {
      dragging: false
    }
  },
  methods: {
    // onProgressMouseDown (event) {
    //   this.dragging = true
    //   this.startX = event.clientX
    //   this.startTime = this.player.currentTime()
    //   document.addEventListener('mousemove', this.onProgressMouseMove)
    //   document.addEventListener('mouseup', this.onProgressMouseUp)
    // },
    // onProgressMouseMove (event) {
    //   if (this.dragging) {
    //     console.log('xxxxx', event, 'progressBar', this.$refs.progressBar.parentNode)
    //     const deltaX = event.clientX - this.startX
    //     const ratio = deltaX / this.$refs.progressBar.parentNode.offsetWidth
    //     const newTime = this.startTime + ratio * this.player.duration()
    //     this.player.currentTime(newTime)
    //   }
    // },
    // onProgressMouseUp () {
    //   this.dragging = false
    //   document.removeEventListener('mousemove', this.onProgressMouseMove)
    //   document.removeEventListener('mouseup', this.onProgressMouseUp)
    // }
  },
  mounted () {

    this.player = videoJs(this.$refs.videoPlayer)

    // 监听进度条拖动事件
    this.player.on('timeupdate', (time) => {
      if (this.player.userActive()) {
        // 用户正在拖动进度条
        // 可以在这里执行你需要的操作
      }
    })
  },
  beforeDestroy () {
    if (this.player) {
      this.player.dispose()
    }
  }
}
</script>
<style scoped>
.video-progress {
  position: relative;
  width: 100%;
  height: 5px;
  background-color: #e5e5e5;
  cursor: pointer;
}

.video-played {
  position: absolute;
  left: 0;
  height: 100%;
  background-color: #3e8f3e;
}
</style>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
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视频

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值