JavaScript获取视频时长

东明兄 2020-06-05
0条评论 1,356 次浏览
东明兄 2020-06-050条评论 1,356 次浏览

使用document.createElement 创建一个 video 对象,
将video的src设为使用 URL.createObjectURL(file) 生成 blob url。

当指定的音频/视频的元数据已加载时,会发生 loadedmetadata 事件。
音频/视频的元数据包括:时长、尺寸(仅视频)以及文本轨道。

参考:https://www.w3school.com.cn/tags/av_event_loadedmetadata.asp

监听video 的 loadedmetadata 事件

  handleGetVideoTime(file) {
    return new Promise((resolve, reject) => {
      const video = document.createElement('video');
      video.preload = 'metadata';
      video.src = URL.createObjectURL(file);
      video.addEventListener('loadedmetadata', () => {
        console.log('duration', video.duration);
        resolve(video.duration);
      });
    });
  }

video/audio 的duration 属性 即代表 视频/音频的长度,以秒为单位。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注