如何在Safari中提供音频预览而无需将文件加载到内存中

时间:2014-10-11 18:56:15

标签: javascript audio safari html5-audio web-audio

我有一个网页,允许用户使用表单的文件选择按钮选择多个.wav文件。然后使用以下标记显示每个.wav:

<audio src="blob:f3xyz808-1a65-440e-8e5f-b5djfht4ad1a" controls=""></audio>

这在Chrome和Firefox中运行良好。但是,在Safari中,如果我尝试加载太多.wavs,它会停止加载。使用javascript控制台我可以看到Safari正在使用的内存随着每个.wav增长,并且可以达到2GB以上。使用Chrome,内存使用量不会显着增加。因此,Chrome和FF似乎从磁盘传输文件。是否可以使用Safari进行此操作?

编辑: 对于第一个问题,可能的解决方案是在音频标记中包含:preload="none"

在单独但相关的说明中:似乎浏览器在将音频文件添加到音频标签时至少在一定程度上解码音频文件,因为如果文件无效则会抱怨。是否可以在不在内存中创建音频缓冲区的情况下访问此解码数据。具体来说,我想创建一个文件图表&#39;音量与时间的关系。目前,我通过使用web audio api解码arrayBuffer来实现这一点。这使用了大量的内存。是否可以从.wav的原始二进制数据中获取音量信息?

我意识到这个问题有一些缺点。我对一些概念有点模糊。

任何提示或建议都会有很大帮助。谢谢。

0 个答案:

没有答案