我有音频文件,我正在使用Web音频API在浏览器上播放它们。现在我想同时播放所有的音频文件。我得到了所有的音频文件使用网络音频API的音频缓冲区。我可以通过所有的循环,可以播放它们,但我想合并到一个单一的音频缓冲区,然后播放所有的音频缓冲区。有没有人想到在Web音频API中合并两个音频缓冲区?
2w3rbyxf1#
如果你想同时播放所有的,只需将每个缓冲区连接到context.destination(或者连接到目的地的大多数其他节点),然后同时启动它们。
context.destination
idv4meu82#
如果你只需要播放它,你应该把两个源都连接到目的地。要真正将两个缓冲区合并为另一个缓冲区,可以使用offlineAudioContext或自己合并数组,如下所示
gmxoilav3#
如果您对两个或多个音频PCM阵列求和,即每个样本的buffer1[i] + buffer2[i],则您将得到包含两个声音的第三个音频。例如,您甚至可以在每个轨道上使用倍增因子来控制其音量。希望这能帮上忙,这只是个开始。
3条答案
按热度按时间2w3rbyxf1#
如果你想同时播放所有的,只需将每个缓冲区连接到
context.destination
(或者连接到目的地的大多数其他节点),然后同时启动它们。idv4meu82#
如果你只需要播放它,你应该把两个源都连接到目的地。
要真正将两个缓冲区合并为另一个缓冲区,可以使用offlineAudioContext或自己合并数组,如下所示
gmxoilav3#
如果您对两个或多个音频PCM阵列求和,即每个样本的buffer1[i] + buffer2[i],则您将得到包含两个声音的第三个音频。
例如,您甚至可以在每个轨道上使用倍增因子来控制其音量。
希望这能帮上忙,这只是个开始。