介绍

本文主要介绍在获取到视频的URL之后,如何通过js方法获取视频的总时长,兼容了web页面、APP内嵌h5页面、小程序内嵌h5页面~

详情参考:https://timor419.github.io/2021/11/25/JS-getVideoDuration/

适用场景:

web页面、APP内嵌h5页面、小程序内嵌h5页面

JS代码:

一、获取视频时长方法

注:其中getENVIR、checkIfIOS方法见链接:https://blog.csdn.net/weixin_43937466/article/details/121539118

getVideoDuration(url) {
  // IOS的微信小程序中无法触发onloadedmetadata
  if (this.getENVIR() === 'wxapp' && this.checkIfIOS()) {
    return new Promise((reslove) => {
      let audio = new Audio(url);
      audio.muted = true;
      audio.play().then(() => audio.pause());
      audio.addEventListener('loadedmetadata', function() {
        reslove(parseInt((audio.duration * 1000).toString(), 10));
      });
      audio.muted = false;
    });
  }
  return new Promise((reslove) => {
    let video = document.createElement('video');
    video.preload = 'metadata';
    video.src = url;
    video.onloadedmetadata = () => {
      reslove(parseInt((video.duration * 1000).toString(), 10));
      video = null;
    };
  });
},

二、调用方法

const duration = this.getVideoDuration('https://cdn.webuy.ai/static/lib/resource/2021/11/25/1637813076906_4250.mp4');
console.log('视频总时长:', duration);

------------- The End -------------

许可协议: 转载请保留原文链接及作者。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐