? 实现原理
- 通过创建一个
Video
标签,然后获取时长
? 实现
- 考虑到后面这个东西会常用,因此我这里通过封装成独立一个JS文件。
- 文件名称:
videoDurationJudgment.js
✨方法封装✨
function videoDurationJudgment(file, maxDuration) {
return new Promise((resolve, reject) => {
const video = document.createElement('video');
video.preload = 'metadata';
video.src = URL.createObjectURL(file);
video.onloadedmetadata = () => {
URL.revokeObjectURL(video.src);
console.log('视频时长:', video.duration);
resolve(video.duration < maxDuration);
video.remove(); // 销毁video元素
};
video.onerror = () => {
reject(new Error('视频加载出错'));
video.remove(); // 销毁video元素
};
video.onabort = () => {
reject(new Error('视频加载中断'));
video.remove(); // 销毁video元素
};
});
},
export default videoDurationJudgment
更多详情参数请查看苏宛墨の小破站