Javascript 如何告诉AudioBuffer-SuxCoDoC在缓冲区中间开始和结束?
我正在使用HTML5音频应用程序将声音融入到我的游戏中。如何创建在音频缓冲区中间播放和停止播放的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或创建其中的一部分。我
我在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中更新的示例: