我正在使用HTML5音频应用将声音合并到我的游戏中。如何创建一个AudioBufferSourceNode,用于在AudioBuffer中间开始和停止播放?
我在AudioBufferSourceNode接口中找不到用于创建从缓冲区中间开始的AudioBufferSourceNode的内容: https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode
我想我可以创建带有原始AudioBuffer切片的AudioBufferSourceNode,但我想节省内存,因为我的游戏已经耗尽了大量的javascript堆内存,所以我真的不想复制AudioBuffers或者创造其部分。我只想制作几个AudioBufferSourceNodes,每个都播放一个AudioBuffer的部分。
我是怎么做到的?
答案 0 :(得分:5)
只需使用其他(可选)参数AudioBufferSourceNode#start
// begin playback immediately, starting at second 10 of the buffer
// and lasting 20 seconds
sourceNode.start( audioContext.currentTime, 10, 20 );
第一个参数是when
,您可能很熟悉。这只是使用AudioContext#currentTime
的坐标系确定声音何时开始播放。
第二个参数是offset
。这是AudioBuffer
实例的秒数。因此,如果您想在10秒内开始播放缓冲区,请在此处传递10
。
第三个参数是duration
。也是在几秒钟内,希望非常自我解释。如果不是,则确定声音的播放时间。