获取音视频文件时长和文本文件字数
- 一、获取音视频文件时长
- 二、计算文本文件字数
最近有个需求,要求上传文件时获取音视频文件时长和文本文件字数🐶。
发现这样的冷门资料不多,特做个记录。本文忽略文件上传功能,只封装核心的工具函数,拿走即用
先看结果,很快获取到视频时长,其他的测试正常,放心食用😄
一、获取音视频文件时长
// 计算音频视频时长
export function getFileDuration(file: any) {
return new Promise((resolve: any) => {
let duration: number | string = 0;
const url = URL.createObjectURL(file);
const element = document.createElement(file.type.startsWith('video/') ? 'video' : 'audio');
element.onloadedmetadata = () => {
duration = element.duration;
resolve(duration ? Math.ceil(duration) : 0);
URL.revokeObjectURL(url); // 释放内存
};
element.onerror = (error) => {
console.error('获取时长失败:', error);
duration = 0;
resolve(duration);
};
element.src = url;
});
}
二、计算文本文件字数
// 计算文本文件字数
export function getTxtWords(file: any) {
return new Promise((resolve: any) => {
const reader = new FileReader();
reader.onload = (event: any) => {
const fileContent = event.target.result;
const words = fileContent.trim(); // 去空格
resolve(words.length);
};
reader.onerror = (error) => {
console.error('Error reading file:', error);
resolve(0);
};
reader.readAsText(file);
});
}