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

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

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

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

先看结果,很快获取到视频时长,其他的测试正常,放心食用😄
在这里插入图片描述

一、获取音视频文件时长

// 计算音频视频时长
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);
  });
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值