Javascript 如何告诉AudioBuffer-SuxCoDoC在缓冲区中间开始和结束?

Javascript 如何告诉AudioBuffer-SuxCoDoC在缓冲区中间开始和结束?,javascript,html,web-audio-api,Javascript,Html,Web Audio Api,我正在使用HTML5音频应用程序将声音融入到我的游戏中。如何创建在音频缓冲区中间播放和停止播放的AudioBuffer-SuxCoDoC? 我在AudioBuffer-SuxCudio接口中没有发现任何在缓冲区中间创建AudioBuffer-SuxCordEd的方法: 我想我可以用原始AudioBuffer的一部分创建AudioBufferSourceNode,但我想节省内存,因为我的游戏已经占用了大量javascript堆内存,所以我真的不想复制AudioBuffers或创建其中的一部分。我

我正在使用HTML5音频应用程序将声音融入到我的游戏中。如何创建在音频缓冲区中间播放和停止播放的AudioBuffer-SuxCoDoC?

我在AudioBuffer-SuxCudio接口中没有发现任何在缓冲区中间创建AudioBuffer-SuxCordEd的方法:

我想我可以用原始AudioBuffer的一部分创建AudioBufferSourceNode,但我想节省内存,因为我的游戏已经占用了大量javascript堆内存,所以我真的不想复制AudioBuffers或创建其中的一部分。我只想制作几个AudioBufferSourceNodes,每个节点播放单个AudioBuffer的一部分

我是如何做到的?

只需使用附加(可选)参数来启动
AudioBufferSourceNode

// begin playback immediately, starting at second 10 of the buffer 
// and lasting 20 seconds
sourceNode.start( audioContext.currentTime, 10, 20 );
第一个参数是
when
,您可能很熟悉。这只是使用
AudioContext\currentTime
的坐标系来确定声音何时开始播放

第二个参数是偏移量。这是进入
AudioBuffer
实例的秒数。因此,如果您想在10秒后开始播放到缓冲区中,您需要在此处传递
10


第三个参数是
持续时间
。也在几秒钟内,而且希望是非常不言自明的。如果不是,这将决定声音将播放多长时间。

我刚刚删除了我的答案-我从示例中删除了代码,并意识到我误解了这个问题:)我正在考虑循环一个特定的部分,而不是定义开始时间@凯文的第二个论点是
start()
。以下是jsbin中更新的示例: