Javascript 将数据附加到已存在的AudioBuffer对象
我希望将数据附加到已经存在的使用web音频播放的文件中Javascript 将数据附加到已存在的AudioBuffer对象,javascript,audio,web-audio-api,Javascript,Audio,Web Audio Api,我希望将数据附加到已经存在的使用web音频播放的文件中 在接收到要播放的音频数据后,我创建了一个数组,然后将数据分配给ArrayBuffer响应 var audioBuffer = context.createBuffer(1, audioToPlay.length, 16000); audioBuffer.getChannelData(0).set(audioToPlay); 然后,我创建一个链接,并将音频缓冲区连接到web音频上下文 var source = co
在接收到要播放的音频数据后,我创建了一个数组,然后将数据分配给ArrayBuffer响应
var audioBuffer = context.createBuffer(1, audioToPlay.length, 16000);
audioBuffer.getChannelData(0).set(audioToPlay);
然后,我创建一个链接,并将音频缓冲区连接到web音频上下文
var source = context.createBufferSource();
source.buffer = audioBuffer;
source.connect(context.destination);
source.start(0);
现在,我想做的是向当前播放的缓冲区添加更多数据(另一个ArrayBuffer),同时避免使用oneded
回调创建新的缓冲区
有没有办法做到这一点?据我所知,这似乎不受支持。您不能这样做。一旦播放缓冲区通过start()传递给音频线程,就不能修改它
然而,也就是说,您绝对不应该使用onended。您应该做的是跟踪计划的最后一个音频缓冲区和它启动的当前时间,并在time=lastCurrentTimeStart+lastBufferDuration创建和播放新的音频缓冲区。您应该能够获得流畅、不间断的播放。您是否看到了“是”-但是,在这种情况下,我正在处理一个流(我前面没有所有缓冲区),感谢验证。听起来我还得跟踪玩家的状态?(即,如果用户暂停,如果播放速率不同等)