使用Web Audio API播放时声音会在内存中扩展吗?

时间:2018-11-30 10:46:13

标签: javascript memory web-audio audio-player

我是Web Audio的初学者,想知道是否将压缩的(AAC,MP3,OGG)音效(尤其是音乐曲目)在内存中扩展为兆字节(如WebGL中的纹理)?

例如,如果我有一个带有音乐的音频文件,并且文件大小约为3 MB(采用以下任何格式:MP3,OGG,AAC),该文件将被扩展(解压缩)到70 MB以便像原始的PCM格式会是?

还可以估计使用Web Audio进行常规播放时音频文件使用了多少内存,而不会产生Web Audio更高级节点的声音效果。

1 个答案:

答案 0 :(得分:1)

当前,要使用压缩的音频文件,必须将压缩的音频文件加载到内存中,然后使用decodeAudioData将压缩文件转换为AudioBuffer,其内部由浮点数组组成-基本上是PCM。 (但是,Firefox进行了优化,在许多情况下,它可以使用16位整数数组而不是浮点数。)

如果使用通道数和AudioBuffer的持续时间,则可以很好地估计所使用的内存。

如果这不适合您使用,唯一的选择是使用MediaElementAudioSourceNode和朋友将压缩文件流式传输到浏览器。但是,您将失去对源的样本精确控制。