使用element的upload上传文件时,除了类型和大小,需求需要限制只能长传18秒内的视频,这里通过upload的before-upload,以及创建一个音频元素对象拿到durtaion时长属性来实现。
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的单位是秒。文章来源:https://www.toymoban.com/news/detail-656730.html
let videoTimes = await this.getVideoTime(file);文章来源地址https://www.toymoban.com/news/detail-656730.html
到了这里,关于视频上传,限制时长,获取视频时长的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!