编程语言
首页 > 编程语言> > javascript – 如何告诉AudioBufferSourceNode在缓冲区中间开始和结束?

javascript – 如何告诉AudioBufferSourceNode在缓冲区中间开始和结束?

作者:互联网

我正在使用HTML5音频应用程序将声音合并到我的游戏中.如何在AudioBuffer中创建一个启动和停止播放的AudioBufferSourceNode?

我在AudioBufferSourceNode接口中找不到用于创建从缓冲区中间开始的AudioBufferSourceNode的内容:
https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#AudioBufferSourceNode

我想我可以使用原始AudioBuffer的片段创建AudioBufferSourceNode,但我想节省内存,因为我的游戏已经耗尽了大量的javascript堆内存,所以我真的不想复制AudioBuffers或创建它的一部分.我只想制作几个AudioBufferSourceNodes,每个都播放单个AudioBuffer的部分内容.

我怎么做的?

解决方法:

只需使用附加(可选)参数到AudioBufferSourceNode #start

// begin playback immediately, starting at second 10 of the buffer 
// and lasting 20 seconds
sourceNode.start( audioContext.currentTime, 10, 20 );

第一个参数是你可能熟悉的时间.这只是使用AudioContext#currentTime的坐标系确定声音​​何时开始播放.

第二个参数是偏移量.这是进入AudioBuffer实例的秒数.因此,如果你想在10秒内开始播放缓冲区,你可以在这里传递10.

第三个参数是持续时间也是在几秒钟内,希望非常自我解释.如果不是,则确定声音将播放多长时间.

标签:javascript,html5,web-audio
来源: https://codeday.me/bug/20190830/1767056.html