使用 XMLHttpRequest 加载多个音频文件并将它们附加到 Web Audio API 中播放

问题描述 投票:0回答: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 个音频缓冲区附加到一个缓冲区中并让用户播放合并的音频。

javascript ajax audio
1个回答
1
投票

我自己想出了一个解决方案。当我将每个缓冲区连接到audioContext.destination时,我可以简单地指定第二个音频播放的时间,即当前时间加上第一个AudioBuffer的持续时间。

© www.soinside.com 2019 - 2024. All rights reserved.