javascript - JavaScript 音频持续时间不适用于 ALAC 文件(HTML 音频持续时间属性)
问题描述
我在一些 JS 代码中使用以下实现来获取加载的音频文件的持续时间:http: //jsfiddle.net/derickbailey/s4P2v/(取自https://lostechies.com/derickbailey/2013/09/23/使用 htmls-file-api-and-audio-element/ 获取音频文件信息。)
我的实现是相同的,即使使用createObjectURL
. 它适用于 MP3、AAC (.m4a) 和 FLAC,但不适用于 ALAC(也适用于 .m4a)。
let length = 0;
let url = URL.createObjectURL(file);
let audio = new Audio(url);
audio.addEventListener('loadeddata', function () {
length = audio.duration;
}
有谁知道我如何使用纯 JavaScript获取ALAC文件的持续时间?我没有使用任何框架,并且是 JS 新手。
谢谢
解决方案
在 MDN 上的文章Web 音频编解码器指南中,它仅在 ALAC 编解码器的浏览器支持部分显示了 Safari。
以下是该文章中完整的浏览器兼容性表:
特征 | 铬合金 | 边缘 | 火狐 | IE浏览器 | 歌剧 | 苹果浏览器 |
---|---|---|---|---|---|---|
ALAC 支持 | 不 | 不 | 不 | 不 | 不 | 是的 |
推荐阅读
- azure - 如何在 Azure 容器实例上托管的 sftp 中使用用户定义的权限创建具有多个文件夹的多个用户
- php - 如果列 B 的值小于 700,则 phpspreadsheet 条件格式列 A
- python - Python如何从嵌套循环中返回嵌套字典?
- sql-server - 在 SSAS 表格中使用动态行过滤器进行动态数据屏蔽
- sql - 如果结果是正数和负数,如何从多列中求和并分离到单独的列中
- java - 如何获取log4j2中所有记录器的列表
- laravel - 无法使用 SendGrid 中的 2 个可能的身份验证器在用户名“apikey”的 SMTP 服务器上进行身份验证
- mysql - Mysql 5.7 - 从子选择中获取多个值
- r - 如何使用 for 循环找到两行的平均值?
- cassandra - Apache Beam - 将 BigQuery TableRow 写入 Cassandra