上传文件时获取音视频文件时长和文本文件字数

获取音视频文件时长和文本文件字数

最近有个需求,要求上传文件时获取音视频文件时长和文本文件字数🐶。

发现这样的冷门资料不多,特做个记录。本文忽略文件上传功能,只封装核心的工具函数,拿走即用

先看结果,很快获取到视频时长,其他的测试正常,放心食用😄

一、获取音视频文件时长

js 复制代码
// 计算音频视频时长
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;
  });
}

二、计算文本文件字数

js 复制代码
// 计算文本文件字数
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);
  });
}
相关推荐
墨染天姬3 小时前
[V2X]音频数据流图
音视频
byte轻骑兵13 小时前
【AVDTP】规范精讲[6]: 打通全流程,蓝牙音频连接背后的12步信令博弈
人工智能·音视频·avrcp·蓝牙耳机·蓝牙车机
qq36219670513 小时前
# 视频转文字准确率如何提升?影响识别质量的 6 个关键因素与优化技巧
音视频
不爱记笔记13 小时前
音视频转笔记工具横评2026,通义听悟、Ai好记、NotebookLM 实测对比
人工智能·笔记·ai·音视频·飞书·obsidian
中微极客14 小时前
Seedance 2.5深度解析:字节跳动30秒4K视频生成模型架构与API实战
音视频
SimpleLearingAI15 小时前
生成图像/视频质量评估
音视频·多模态大模型
hz5678915 小时前
音视频技术SDK选型指南:企业实时互动场景的关键能力解析
网络·云计算·音视频·实时音视频·信息与通信
paokuflying15 小时前
ffmpeg提取视频中的音频
ffmpeg·音视频
不爱记笔记16 小时前
上下班路上怎么消化技术视频?我把B站内容转成播客,通勤时间也能系统学习
学习·ai·音视频·知识库·知识管理
zandy101117 小时前
Seedance 2.0第三方创作工具怎么选?商用视频工作流评估指南
音视频