使用 Web Audio API 播放时,声音会在内存中扩展吗?
Are sounds expanded in memory when played with Web Audio API?
我是网络音频的初学者,想知道压缩(AAC、MP3、OGG)音效或特别是音乐曲目是否在内存中扩展为兆字节,就像 WebGL 中的纹理一样?
例如,如果我有一个包含一些音乐的音频文件并且文件大小约为 3 MB(任何格式:MP3、OGG、AAC),文件是否会扩展(解压缩)为 70 MB 以用于像原始 PCM 格式一样播放需要多少时间?
此外,是否可以估计在使用 Web Audio 时音频文件使用多少内存,定期播放,没有 Web Audio 更高级节点的额外音效。
目前,要使用压缩音频文件,您必须将压缩音频文件加载到内存中,然后使用 decodeAudioData
将压缩文件转换为 AudioBuffer
,内部由浮点数组组成-- -本质上是PCM。 (但是,Firefox 进行了优化,在许多情况下,它可以使用 16 位整数数组而不是浮点数。)
如果您使用通道数和 AudioBuffer
的持续时间,您可以很好地估计所用内存。
如果这不适合您使用,唯一的选择是使用 MediaElementAudioSourceNode
和朋友一起将压缩文件流式传输到浏览器。但是,您失去了对源的样本精确控制。
我是网络音频的初学者,想知道压缩(AAC、MP3、OGG)音效或特别是音乐曲目是否在内存中扩展为兆字节,就像 WebGL 中的纹理一样?
例如,如果我有一个包含一些音乐的音频文件并且文件大小约为 3 MB(任何格式:MP3、OGG、AAC),文件是否会扩展(解压缩)为 70 MB 以用于像原始 PCM 格式一样播放需要多少时间?
此外,是否可以估计在使用 Web Audio 时音频文件使用多少内存,定期播放,没有 Web Audio 更高级节点的额外音效。
目前,要使用压缩音频文件,您必须将压缩音频文件加载到内存中,然后使用 decodeAudioData
将压缩文件转换为 AudioBuffer
,内部由浮点数组组成-- -本质上是PCM。 (但是,Firefox 进行了优化,在许多情况下,它可以使用 16 位整数数组而不是浮点数。)
如果您使用通道数和 AudioBuffer
的持续时间,您可以很好地估计所用内存。
如果这不适合您使用,唯一的选择是使用 MediaElementAudioSourceNode
和朋友一起将压缩文件流式传输到浏览器。但是,您失去了对源的样本精确控制。