我有一个网站,可以按确定的顺序加载 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 个音频缓冲区正确附加为一个并让用户播放合并的音频。
好吧,我自己想出了一个解决方案。当我将每个缓冲区连接到 audioContext.destination 时,我可以简单地指定第二个音频播放的时间,即当前时间加上第一个 AudioBuffer 的持续时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句