html - 如何同步播放多个AudioBufferSourceNode?

标签 html web-audio-api

我有多个必须同步播放的音频文件。我读到 Web Audio API 是最好的解决方案。但是,我找不到任何说明如何实现此目的的文档。

我读过的几乎所有文章都是这样做来开始播放的。

//Let's say I have AudioBufferSourceNode connected to two buffers
var source1, source2;

source1.start(0);
source2.start(0);

这是否会导致 source2 比 source1 稍晚开始播放?

此外,是什么让来源保持同步?我在任何文档中都找不到任何可确保源同步播放的内容。

谢谢。

最佳答案

您可以在将来稍微安排它们。

var source1, source2;
var when = context.currentTime + 0.01;

source1.start(when);
source2.start(when);

这将安排两种声音从您定义时间那一刻起恰好播放10毫秒。它的速度足够快,以至于会被认为是即时的,但为在第一个源节点上实际调用 start 的开销提供了一点喘息空间。

如果您有大量节点,有更好的方法可以做到这一点,但对于简单的情况,这应该没问题。

关于html - 如何同步播放多个AudioBufferSourceNode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846107/

相关文章:

javascript - 单页网站上的侧边栏菜单不起作用

javascript - 如何在 html Canvas 中添加镜头光晕效果

html - 当我们在表格中有双边框时,我们如何填充两个边框之间的空隙?

javascript - Web Audio API 无法在 iOS 版本 13.3 上播放。适用于旧版本的 iOS

javascript - Web Audio API 和播放音频文件时的实时时间

javascript - 防止 <dialog> 在 Chrome 中按下 Esc 键时关闭

javascript - 实现具有快速更新脉冲响应的卷积混响

javascript - 节拍器播放时数音符

javascript - Firefox 可以调节计算机上的麦克风音量,但 Chrome 不行

javascript - 如何获取表中除标题行之外的所有行?