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

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

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

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

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

一、获取音视频文件时长

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);
  });
}
相关推荐
熬夜磕代码丶11 小时前
RN鸿蒙空间音频实战
华为·音视频·harmonyos
一条破秋裤2 天前
【V4L2采集视频】
音视频
橙橙笔记2 天前
QT的学习第四部分
linux·qt·学习·音视频
AI视频工具指南3 天前
用 AI 能做哪些视频?按想交付的作品选做法
人工智能·aigc·音视频
希和20273 天前
免费AI视频生成工具汇总(国内优先,适合做漫剧、短视频,Obsidian笔记版)
人工智能·笔记·音视频
謓泽4 天前
【插件】用写网页的方式做视频?HyperFrames 让我重新理解了“做视频“这件事!
gpt·ai·大模型·音视频·媒体·claude·视频
无忧_wy4 天前
MoneyPrinterTurbo 自动化视频生成实战指南
运维·人工智能·自动化·音视频
联犀5 天前
联犀 Go SIMD 实战:视频转码从 16.5ms 到 5.46ms
开发语言·golang·音视频
9527华安5 天前
FPGA纯verilog实现DP视频接口,支持2K60帧分辨率,提供3套工程源码和技术支持
fpga开发·音视频·dp
MetaEnchanter5 天前
视频章节怎么整理:填好时间点,导出前检查这几处
音视频