当前位置: 首页 > news >正文

通过FileReader API获取上传音频的长度

前言

FileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。

实现 

调用FileReader API,并通过(window.AudioContext || window.webkitAudioContext)()创建音频上下文对象实现

代码示例

关键代码

const customRequest = (file) => {//创建FileReaderconst fileReader = new FileReader();//读取成功完成时触发fileReader.onload = (event) => {const arrayBuffer = event.target.result;//创建音频上下文对象const audioContext = new (window.AudioContext ||window.webkitAudioContext)();audioContext.decodeAudioData(arrayBuffer, async (buffer) => {const duration = Math.floor(buffer.duration); // 获取音频时长console.log("音频时长:", duration);//下面可做对音频时长限制的操作});};//当读取由于错误而失败时触发。fileReader.onerror = (error) => {console.error("Error reading file:", error);};//开始读取指定的 Blob 中的内容,读取完成,result 属性中将包含一个表示文件数据的 ArrayBuffer 对象fileReader.readAsArrayBuffer(file);
};

注意:最后一定要记得调用readAsArrayBuffe来读取内容,不然获取不到FileReader的上下文。


http://www.mrgr.cn/news/8614.html

相关文章:

  • 在编程学习的道路上,面对Bug和复杂算法时,我们常常会感到挫折和困惑。以下是一些克服这些挑战的有效方法:
  • Gstreamer-OpenCV的RTSP服务搭建以及推拉流实现
  • C++STL之list的使用详解
  • 常见虚拟现实硬件设备及特点
  • Vue2的16种传参通信方式
  • 选择合适的待办事项软件:用户体验报告
  • 并行 parallel DOP 受 Resource Manager 限制
  • jmespath用法总结
  • Spark MLlib 特征工程系列—特征转换PCA(Principal Component Analysis)
  • 8.Java基础概念-方法
  • 依赖倒置原则
  • Redis | 非关系型数据库Redis的初步认识
  • 刷题DAY17
  • 微服务 - 分布式锁的实现与处理策略
  • Telnet不止于端口测试:探索经典工具的多样化应用
  • 学习大数据DAY42 hive 分桶表
  • liteflow的组件编排
  • OpenCV仿射变换
  • GNU ARM Assembler Quick Reference
  • UEditor百度富文本后端上传文件接口