Vue 监听视频播放时长的实例代码

 更新时间:2024年10月17日 10:56:48   作者:Monly21  
本文介绍了如何通过源码实现对视频实时时长、播放时长和暂停时长的监听,详细阐述了相关技术的应用方法,帮助开发者更好地掌握视频监控技术,提高用户体验

1、源码

<template>
  <el-dialog class="videoBox" :title="title" :visible.sync="visible" width="40%" :before-close="handleClose" :close-on-click-modal="false" :close-on-press-escape="false">
    <video id="video" controls preload autoplay="autoplay" style="width: 100%" @canplay="getVideoDur">
      <source :src="videoUrl" type="video/mp4">
    </video>
  </el-dialog>
</template>
<script>
export default {
  name: 'VideoPlayBack',
  data() {
    return {
      // 标题
      title: null,
      // 是否显示弹框
      visible: false,
      // 视频地址
      videoUrl: null
    }
  },
  methods: {
    /**
     * 初始化视频
     */
    initVideo() {
      this.$nextTick(() => {
        let myVideo = document.getElementById('video')
        myVideo.pause()
        myVideo.load()
      });
    },
    /**
     * 监听视频
     */
    getVideoDur() {
      //监听播放时间
      var video = document.getElementById("video");
      // //使用事件监听方式捕捉事件
      // video.addEventListener("timeupdate", function () {
      //     var timeDisplay = Math.floor(video.currentTime);
      //     var duration = Math.floor(video.duration);
      //     console.log("总时长", duration);
      //     console.log("当前播放的时长", timeDisplay);
      //   }, false);
      // 监听视频播放
      // video.addEventListener("play", function () {
      //   var duration = Math.floor(video.duration);
      //   console.log("总时长", duration);
      //   var timeDisplay = Math.floor(video.currentTime);
      //   console.log("视频开始时长", timeDisplay);
      // })
      // 监听视频暂停
      video.addEventListener("pause", function () {
        var duration = Math.floor(video.duration);
        console.log("总时长", duration);
        var timeDisplay = Math.floor(video.currentTime);
        console.log("视频结束时长", timeDisplay);
      })
    },
    /**
     * 关闭弹框
     */
    handleClose() {
      this.videoUrl = null
      this.visible = false
    },
  }
}
</script>
<style>
.videoBox .el-dialog__header {
  background-color: #000000;
}
.videoBox .el-dialog__header .el-dialog__title {
  color: #fff;
}
.videoBox .el-dialog__body {
  padding: 0 !important;
  background-color: #000000;
}
</style>

2、监听视频实时时长

video.addEventListener("timeupdate", function () {
  var timeDisplay = Math.floor(video.currentTime);
  var duration = Math.floor(video.duration);
  console.log("总时长", duration);
  console.log("当前播放的时长", timeDisplay);
}, false);

3、监听视频播放时长

video.addEventListener("play", function () {
  var duration = Math.floor(video.duration);
  console.log("总时长", duration);
  var timeDisplay = Math.floor(video.currentTime);
  console.log("视频开始时长", timeDisplay);
})

4、监听视频暂停时长

video.addEventListener("pause", function () {
  var duration = Math.floor(video.duration);
  console.log("总时长", duration);
  var timeDisplay = Math.floor(video.currentTime);
  console.log("视频结束时长", timeDisplay);
})

到此这篇关于Vue 监听视频播放时长的实例代码的文章就介绍到这了,更多相关vue播放时长内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中通过iframe方式加载本地的vue页面的解决方法

    vue中通过iframe方式加载本地的vue页面的解决方法

    这篇文章主要给大家介绍了在vue中如何通过iframe方式加载本地的vue页面的解决方法,文中有详细的解决流程,需要的朋友可以参考下
    2023-06-06
  • Vue项目中v-bind动态绑定src路径不成功问题及解决

    Vue项目中v-bind动态绑定src路径不成功问题及解决

    这篇文章主要介绍了Vue项目中v-bind动态绑定src路径不成功问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • mpvue小程序循环动画开启暂停的实现方法

    mpvue小程序循环动画开启暂停的实现方法

    这篇文章主要介绍了mpvue小程序循环动画开启暂停的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • vue项目登录成功拿到令牌跳转失败401无登录信息的解决

    vue项目登录成功拿到令牌跳转失败401无登录信息的解决

    这篇文章主要介绍了vue项目登录成功拿到令牌跳转失败401无登录信息的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 用 Vue.js 递归组件实现可折叠的树形菜单(demo)

    用 Vue.js 递归组件实现可折叠的树形菜单(demo)

    通过本文给您演示一下如何有效地使用递归组件,我将通过建立一个可扩展/收缩的树形菜单的来一步步进行。下面通过本文给大家分享用 Vue.js 递归组件实现可折叠的树形菜单,需要的朋友参考下吧
    2017-12-12
  • Vue 重置组件到初始状态的方法示例

    Vue 重置组件到初始状态的方法示例

    这篇文章主要介绍了Vue 重置组件到初始状态的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 详解vue-class迁移vite的一次踩坑记录

    详解vue-class迁移vite的一次踩坑记录

    本文主要介绍了vue-class迁移vite的一次踩坑记录,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Vue实现一个图片懒加载插件

    Vue实现一个图片懒加载插件

    这篇文章主要给大家介绍了关于利用Vue实现一个图片懒加载的插件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 将VUE项目部署到服务器的详细步骤

    将VUE项目部署到服务器的详细步骤

    经过一段时间的探索,前端后端都有大致的样子了,下面就是部署到服务器,这篇文章主要给大家介绍了关于将VUE项目部署到服务器的详细步骤,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • vue使用element-ui的el-input监听不了回车事件的解决方法

    vue使用element-ui的el-input监听不了回车事件的解决方法

    小编在使用element-ui时,el-input组件监听不了回车事件,怎么回事呢?下面小编给大家带来了vue使用element-ui的el-input监听不了回车事件的解决方法,一起看看吧
    2018-01-01

最新评论