无名阁,只为技术而生。流水不争先,争的是滔滔不绝。

(vue videojs) vue项目中如何使用video.js实现视频播放与视频进度条打点 视频播放与进度条打点开发流程 全网首发(图文详解1)

前沿技术 Micheal 3个月前 (06-25) 36次浏览 已收录 扫描二维码

(vue videojs) vue项目中如何使用video.js实现视频播放与视频进度条打点

在Vue项目中使用video.js来实现视频播放与视频进度条打点的详细开发流程如下:

  • 安装video.js

首先,需要在项目中安装video.js。可以使用npm或yarn来安装。打开命令行工具,切换到项目目录,然后运行下面的命令:

npm install video.js --save
# 或者
yarn add video.js
  • 引入video.js

在需要使用video.js的Vue组件内部,引入video.js及其样式文件:

import videojs from 'video.js'
import 'video.js/dist/video-js.css'
  • 创建video.js播放器实例

在Vue组件的template中添加视频标签,并设置video.js的选项。

<template>
  <div>
    <video id="my-video" class="video-js vjs-big-play-centered" controls preload="auto" width="640" height="264">
      <source src="YOUR_VIDEO_SOURCE.mp4" type="video/mp4" />
      <!-- 如有其他视频格式源,可以继续添加source标签 -->
    </video>
  </div>
</template>

在Vue组件的mounted钩子函数中创建video.js实例:

export default {
  mounted() {
    this.player = videojs('my-video', {
      // video.js的配置选项
    }, function onPlayerReady() {
      console.log('播放器准备就绪');
      // 可以在这里使用this来访问播放器实例
      // 例如:this.play()
    });
  },
  beforeDestroy() {
    if (this.player) {
      this.player.dispose(); // 在组件销毁前释放播放器资源
    }
  }
}
  • 实现视频进度条打点

video.js插件本身并不直接支持进度条打点功能,因此需要自定义实现这一功能。

export default {
  methods: {
    addMarkers(markers) {
      if (!this.player) return;

      const playerTimeUpdateHandler = () => {
        const currentTime = this.player.currentTime();
        markers.forEach(marker => {
          if (currentTime >= marker.time) {
            // 执行打点逻辑,例如更新标记样式或显示标记内容
          }
        });
      };

      this.player.on('timeupdate', playerTimeUpdateHandler);
    }
  },
  mounted() {
    // ...之前的代码保持不变

    // 添加打点
    this.addMarkers([
      { time: 10, text: "重点1" },
      { time: 20, text: "重点2" }
      // ...更多打点数据
    ]);
  },
  // ...其他代码保持不变
}

上面的addMarkers方法的markers参数是一个包含时间和文本的对象数组,用于表示在视频的哪个时间点上显示哪个文本。当播放器触发timeupdate事件时,会调用addMarkers方法,检查当前时间是否达到任何打点时间,如果达到,就执行相应的操作。

这个基本的示例展示了video.js在Vue中的使用以及如何开始构建一个进度条打点的基本功能。对于复杂的打点逻辑和样式,可能需要更高级的实现,且可能不在本回答的范围内。

需要指出,这只是一个基础的实现方案,具体项目中可能需要处理打点的样式、交互逻辑以及不同需求的自定义功能。此外,在真实的生产环境中,视频资源和打点信息通常会由后端提供。希望以上的步骤和示例代码能为你实现项目需求提供一定的帮助。
(android studio 打包) 浅谈Android Studio 的四种打包方式 Android Studio 四种常见打包方式 全网首发(图文详解1)
(sap2000破解版) CSI SAP2000 V24破解版安装教程(附下载地址) 关于CSI SAP2000破解版的注意和建议 全网首发(图文详解1)

喜欢 (0)
[]
分享 (0)
关于作者:
流水不争先,争的是滔滔不绝