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

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

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

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

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

一、获取音视频文件时长

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);
  });
}
相关推荐
王家视频教程图书馆4 小时前
横屏下的全屏视频 右边视频控制器被虚拟按键遮挡了,解决方式隐藏状态栏,竖屏后在恢复
音视频
EasyDSS4 小时前
EasyDSS如何基于LiveKit/AI大模型/AI会议助手/语音转写STT技术破解音视频应用核心痛点
人工智能·音视频·webrtc·语音识别·点播技术·流媒体直播
阿甘编程点滴4 小时前
书单号视频搬运软件推荐8款(2026实测版)
人工智能·音视频
liulilittle6 小时前
Windows 11 上搭建 YouTube 视频下载工具:yt-dlp + FFmpeg
windows·ffmpeg·音视频
yzx9910137 小时前
手把手教你安装视频下载神器 Lux(多平台教程)
音视频
YWamy7 小时前
音视频SDK开发的三大核心挑战及高效应对策略
音视频
小博士爱吃西红柿8 小时前
# 可灵(Kling)视频API在6AI平台的对接配置教程
音视频·视频
自挂东南枝�9 小时前
从人工审校到AI赋能:音视频校对如何保障内容质量
人工智能·音视频
声光界10 小时前
议程公布 | 智能车载音频专题论坛将于3月25-26日举办
音视频
2301_7644413310 小时前
Qwen-VL-Narrator:影视剧视频片段的理解和生成细粒度描述
人工智能·计算机视觉·语言模型·自然语言处理·音视频