Javascript 将数据附加到已存在的AudioBuffer对象

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

我希望将数据附加到已经存在的使用web音频播放的文件中


在接收到要播放的音频数据后,我创建了一个数组,然后将数据分配给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创建和播放新的音频缓冲区。您应该能够获得流畅、不间断的播放。

您是否看到了“是”-但是,在这种情况下,我正在处理一个流(我前面没有所有缓冲区),感谢验证。听起来我还得跟踪玩家的状态?(即,如果用户暂停,如果播放速率不同等)