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

获取语音文件时长

获取语音文件时长一会儿有一会儿没的,百思不得其解。
错误代码:

  const getAudioDuration = async src => {const audio = new Audio(src);const duration = await new Promise(resolve => {if (audio.duration) {return resolve(parseInt(audio.duration * 1000));}audio.addEventListener('loadedmetadata', () => {resolve(parseInt(audio.duration * 1000));});});}

后来换了个方法:

  const getAudioDuration = async src => {const audio = new Audio(src);return await new Promise(resolve => {const getDuration = event => {event.target.currentTime = 0;event.target.removeEventListener('timeupdate', getDuration);resolve(event.target.duration);};audio.addEventListener('loadedmetadata', e => {const audio = e.target;if (audio.duration === Infinity || isNaN(Number(audio.duration))) {audio.currentTime = 1e101;audio.addEventListener('timeupdate', getDuration);return;}resolve(audio.duration);});});};

完美解决

http://www.lryc.cn/news/421814.html

相关文章:

  • 应急响应计划:网络安全事件后的快速恢复策略
  • 【网络】IP和MAC地址的映射——ARP协议和ARP欺骗概述
  • 鸿蒙(API 12 Beta3版)【音视频解封装】 文件解析封装
  • 智能马桶盖和普通马桶盖有什么不同?
  • C# OnnxRuntime部署LivePortrait实现快速、高质量的人像驱动视频生成
  • Spring boot框架指南
  • 数据结构--树与二叉树
  • C#项目实战经验——计时方法总结
  • 电子盖章软件哪个好|盖章软件
  • ThreejsWebGPU运动残影demo
  • HttpSession常用方法
  • 【JavaEE初阶】文件操作和IO
  • 存储器芯片的基本原理
  • 前端实习手记(7):立秋快乐
  • 感恩放下,笑对人生,在人生的长河中,每一天都是独特的篇章,或顺心如意,或充满挑战
  • URLSession之初窥门径
  • ios创建控制器的3种方法实现页面跳转
  • Android逆向题解-boomshakalaka-3-难度5
  • Linux(Ubuntu 22.04)系统中固定串口
  • LeetCode - 209 - 长度最小的子数组
  • 探索空间计算与VR中的手势跟踪新纪元:XHand框架详解
  • leetcode + 项目复习
  • 树莓派4/5:设置apt、pip、conda首选清华镜像源
  • NoSQL 之Redis集群模式
  • oracle rac
  • 计算机毕业设计Python深度学习房价预测 房价可视化 链家爬虫 房源爬虫 房源可视化 卷积神经网络 大数据毕业设计 机器学习 人工智能 AI
  • 【Linux】学习Linux,需要借助具象化的思维
  • R语言贝叶斯方法在生态环境领域技术教程
  • mojo实现高阶函数(algorithm)
  • 先进制造aps专题二十四 云平台排产aps的方案设计