Web Audio API - 合并两个音频缓冲区

4

我有音频文件,并使用Web Audio API在浏览器中播放它们。现在我想同时播放所有音频文件。

我使用Web Audio API获取了所有音频文件的音频缓冲区。我可以循环遍历并播放它们,但我想将所有音频缓冲区合并为一个单独的音频缓冲区,然后再播放它。

有人知道如何在Web Audio API中合并两个音频缓冲区吗?

3个回答

3
如果你想同时播放所有内容,只需将每个缓冲区连接到context.destination(或连接到目标的任何其他节点),并同时启动它们。

3
如果你将两个或多个音频PCM数组相加,例如对于每个采样执行buffer1[i] + buffer2[i],那么你会得到一个包含两者声音的第三个音频。
你甚至可以对每个轨道使用乘法因子来控制其音量,例如。
希望这有所帮助。这只是一个开始。

1
这应该是正确的答案。缓冲器只是正弦波,你可以将缓冲器相互叠加。 - Kilian Hertel

2
如果您只想播放它,则应将两个源连接到目标。要真正将两个缓冲区合并到另一个缓冲区中,可以使用offlineAudioContext或像这样手动合并数组:https://github.com/audiojs/audio-buffer-utils。请注意保留HTML标签。"Original Answer"翻译成"最初的回答"。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接