在vue项目中如何获取视频的时长

 更新时间:2022年04月11日 10:17:57   作者:看门猫  
这篇文章主要介绍了在vue项目中如何获取视频的时长,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

vue获取视频时长

传入参数为视频文件对象

js的代码如下:

getVideoDuration(file) {
  var url = URL.createObjectURL(file);
  var audioElement = new Audio(url);
  var self = this;
  var result;
  audioElement.addEventListener("loadedmetadata", function() {
    // 视频时长值的获取要等到这个匿名函数执行完毕才产生
    result = audioElement.duration; //得到时长为秒,小数,182.36
    self.ruleForm.videoDuration = parseInt(result); //转为int值
  });
}

vue-video-player获取播放时间

npm install vue-video-player -S

全局引用

import VideoPlayer from 'vue-video-player'
import 'vue-video-player/src/custom-theme.css'
import 'video.js/dist/video-js.css'
Vue.use(VideoPlayer)

局部引用

  import {
    videoPlayer
  } from 'vue-video-player'
  import 'video.js/dist/video-js.css'
  export default {
  components: {
    videoPlayer
  }
}

html

   <video-player class="video-player vjs-custom-skin" 
            ref="videoPlayer" 
            :playsinline="true" 
            :options="playerOptions">
      </video-player>

methods获取播放时间

  this.$nextTick(() => {
       setTimeout(() => {
       let du = document.getElementById("vjs_video_3_html5_api") //获取组件下的video
       var hour = parseInt((du.duration) / 3600);
       var minute = parseInt((du.duration % 3600) / 60);
       var second = parseInt(du.duration % 60);
       let result = ''
       if (hour > 0) {
       result = this.formatTimeStr(hour) + ':' + this.formatTimeStr(minute) + ':' + this
       .formatTimeStr(second)
                 } else {
                    result = this.formatTimeStr(minute) + ':' + 
                  this.formatTimeStr(second)
                  }
                  return result //转化成分,秒
                }, 200)
              })
 
     formatTimeStr(val) {
        if (val > 9) {
          return val
        } else {
          return '0' + val
        }
      },

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vuex中store的action和mutations用法

    vuex中store的action和mutations用法

    这篇文章主要介绍了vuex中store的action和mutations用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue3的组合式API中使用ref()函数的例子

    Vue3的组合式API中使用ref()函数的例子

    你们是否听说过Vue3的组合式API?它可是Vue3的新玩法,把以前的Vue2组件函数转化为了函数组件。好了,今天我要和大家分享的是如何在组合式API中使用ref()函数,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • vue大数据表格卡顿问题的完美解决方案

    vue大数据表格卡顿问题的完美解决方案

    这篇文章主要给大家介绍了基于vue大数据表格卡顿问题的完美解决方案,文中通过示例代码介绍的非常详细,对大家学习或者使用vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • vue.js 微信支付前端代码分享

    vue.js 微信支付前端代码分享

    下面小编就为大家分享一篇vue.js 微信支付前端代码。具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue中如何实时监听本地存储

    vue中如何实时监听本地存储

    这篇文章主要介绍了vue中如何实时监听本地存储,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue实现导出excel表格功能

    Vue实现导出excel表格功能

    这篇文章主要介绍了Vue实现导出excel表格的功能,在文章末尾给大家提到了vue中excel表格的导入和导出代码,需要的朋友可以参考下
    2018-03-03
  • Vue中使用localStorage存储token并设置时效

    Vue中使用localStorage存储token并设置时效

    这篇文章主要为大家介绍了Vue中使用localStorage存储token并设置时效,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • vue中如何实现锚点定位平滑滚动

    vue中如何实现锚点定位平滑滚动

    这篇文章主要介绍了vue中如何实现锚点定位平滑滚动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue中v-html图片过大导致溢出的问题及解决

    Vue中v-html图片过大导致溢出的问题及解决

    这篇文章主要介绍了Vue中v-html图片过大导致溢出的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • vue单向以及双向数据绑定方式(v-bind和v-model的使用)

    vue单向以及双向数据绑定方式(v-bind和v-model的使用)

    这篇文章主要介绍了vue单向以及双向数据绑定方式(v-bind和v-model的使用),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04

最新评论