验证上传视频时长
我们在用input上传文件的时候,我们能够获取到大小,但是如果获取时长就没有办法了。如果验证上传的视频在100s以上,这个需要要怎么做呢?
video元素有一个duration属性,它表示的是视频时长的秒数。
let video = document.createElement('video');
let i = setInterval(function() {
if(video.readyState > 0) {
// 在这里获取时长,不然有可能获取错误的视频时长,获取到的时长是一个string格式,注意格式化
console.log(parseFloat(video.duration, 10))
clearInterval(i);
}
}, 100);
需要说明的一点是,我们需要使用setInterval来检查视频的readyState是否有效,如果视频还没有加载成功,我们就去获取这个值,得到的数值就会有问题。
另外如果在异步操作中,可以用 Promise进行包裹。