代码基于ng-zorro组件,适当参考哈:
beforeVideoUpload = (file: File) => {
return new Observable((observer: Observer<boolean>) => {
// 判断文件类型
const isVideoFile = /video\/(wmv|asf|asx|rm|rmvb|mpg|mpeg|mpe|3gp|mov|mp4|m4v|avi|dat|mkv|flv|vob)$/.test(file.type);
console.log('是否为视频类型:', isVideoFile);
// 获取视频时长
const url = URL.createObjectURL(file);
const audioElement = new Audio(url);
let videoSeconds;
audioElement.addEventListener('loadedmetadata', (_event) => {
videoSeconds = Math.floor(audioElement.duration);
console.log('视频时长为', videoSeconds);
observer.next(true);
observer.complete();
});
});
};