更改网络音频中 start() 的持续时间

changing the duration of start() in web audio

对于网络音频 API,有没有办法改变 start() 的持续时间;例如start(0,0,3),声音播放了2秒后,现在我想让它播放5秒而不是3秒。

我是否必须安排一个连续的 start() 来从上一个停止的地方继续?

提前致谢。

简短回答:不可以。您不能更改使用参数设置的持续时间。

长答案:

因此 start 接受 3 个参数,whenoffsetduration。但是all of those are optional。如果你不传入 duration 参数,它将一直播放到缓冲区结束(或者如果你将 loop 属性 设置为 true 则继续循环播放) .

所以做你想做的事情的一种方法是不将 duration 参数传递给 start,然后在你希望它停止播放时调用 stop 函数(之后5 秒)。 stop 也可以使用 when 参数提前安排。所以在你的情况下,它会在 2s 标记处调用类似 stop(context.currentTime + 3) 的东西。