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

2022-07-15,,,,

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
        }
      },

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

《在vue项目中如何获取视频的时长.doc》

下载本文的Word格式文档,以方便收藏与打印。