我有一个网络,按照确定的顺序加载3个不同的音频文件(每个1秒),然后合并到一个音频缓冲区(一个接一个)
为了演示我想要做的事情,这是示例代码段:
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioContextApp = new AudioContext();
var buffer1 = audioContextApp.createBufferSource();
var buffer2 = audioContextApp.createBufferSource();
var buffer3 = audioContextApp.createBufferSource();
var request1 = new XMLHttpRequest;
request1.open('GET', URL_FIRST_SOUND, true);
request1.onload = function() {
var undecodedAudio = request1.response;
audioContextApp.decodeAudioData(undecodedAudio, function(buffer) {
buffer1.buffer = buffer;
});
}
request1.load()
// DO the same thing with request2, request3 to load second and third sound.
现在我不知道如何将这3个音频缓冲区正确地附加到一个中,让用户播放合并后的音频。
答案 0 :(得分:0)
我自己想出了一个解决方案。当我将每个缓冲区连接到audioContext.destination时,我可以简单地指定第二个音频播放的时间,即当前时间加上第一个AudioBuffer的持续时间。