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