我是Web Audio的初学者,想知道是否将压缩的(AAC,MP3,OGG)音效(尤其是音乐曲目)在内存中扩展为兆字节(如WebGL中的纹理)?
例如,如果我有一个带有音乐的音频文件,并且文件大小约为3 MB(采用以下任何格式:MP3,OGG,AAC),该文件将被扩展(解压缩)到70 MB以便像原始的PCM格式会是?
还可以估计使用Web Audio进行常规播放时音频文件使用了多少内存,而不会产生Web Audio更高级节点的声音效果。
答案 0 :(得分:1)
当前,要使用压缩的音频文件,必须将压缩的音频文件加载到内存中,然后使用decodeAudioData
将压缩文件转换为AudioBuffer
,其内部由浮点数组组成-基本上是PCM。 (但是,Firefox进行了优化,在许多情况下,它可以使用16位整数数组而不是浮点数。)
如果使用通道数和AudioBuffer
的持续时间,则可以很好地估计所使用的内存。
如果这不适合您使用,唯一的选择是使用MediaElementAudioSourceNode
和朋友将压缩文件流式传输到浏览器。但是,您将失去对源的样本精确控制。