视频上传,限制时长,获取视频时长

使用element的upload上传文件时,除了类型和大小,需求需要限制只能长传18秒内的视频,这里通过upload的before-upload,以及创建一个音频元素对象拿到durtaion时长属性来实现。

javascript 复制代码
   getVideoTime(file) {
      return new Promise(async (resolve, reject) => {
        let url = URL.createObjectURL(file);
        let audioElement = new Audio(url);
        let durtaion = 0;
        audioElement.addEventListener('loadedmetadata', function () {
          durtaion = audioElement.duration;
          resolve(parseFloat(durtaion));
        });
      });
    },

loadedmetadata 事件是当指定的音频/视频的元数据已加载时触发,就可以得到元数据,包括时长,尺寸等;

这里使用promise是因为加载音频元数据这是一个异步操作。

在上传文件之前的钩子里就可以拿到视频的时长做判断了,videoTimes的单位是秒。

let videoTimes = await this.getVideoTime(file);

相关推荐
Sylvia-girl几秒前
线程池~~
java·开发语言
fie88892 分钟前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
未来龙皇小蓝2 分钟前
RBAC前端架构-02:集成Vue Router、Vuex和Axios实现基本认证实现
前端·vue.js·架构
lly2024064 分钟前
C# 变量作用域
开发语言
空白诗8 分钟前
高级进阶 React Native 鸿蒙跨平台开发:slider 滑块组件 - 进度条与评分系统
javascript·react native·react.js
时艰.8 分钟前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
MSTcheng.10 分钟前
【C++】C++智能指针
开发语言·c++·智能指针
无小道11 分钟前
Qt——网络编程
开发语言·qt
wazmlp00188736913 分钟前
第五次python作业
服务器·开发语言·python
云深处@14 分钟前
【C++11】部分特性
开发语言·c++