使用 XMLHttpRequest 加载多个音频文件并附加在 Web Audio API 中播放

贾维斯·梁

我有一个网站,可以按确定的顺序加载 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单击使用Web Audio Api播放的流中的声音

使用 Web Audio API 限制播放速率

使用Web Audio API缓冲音频

在Web Audio中播放原始音频PCM样本

Web Audio API-播放同步的声音

Web Audio API互相播放说明

Web Audio API 延迟缓冲播放

是否可以使用 Chrome 中的 Web Audio API 来操作来自 RTCTrackEvent 的音频?

使用 Web Audio API 获取音频标记/提示点

使用AVAudioPlayer播放多个音频文件

MediaElementSource使用的内存是否少于Web Audio API中的BufferSource?

如何使用HTML5音频API播放从XMLHTTPRequest返回的音频

MIX Wav 文件并使用 Web Audio API 导出

使用Web Audio API时的播放会在每个块的开头跳过

如何使用Web Audio API获得正确的音轨振幅(不播放)

使用Web Audio Api连续播放小声音缓冲区的序列

如何使用 just_audio-flutter 正确播放音频文件

如何使用javascript随机播放音频标签中的多个音频文件?

无法在Vue Web应用中播放音频文件

使用多个AKPlayers播放多个音频文件

Web音频API获取<audio>元素的AudioBuffer

Web Audio Api中的exponentialRampToValueAtTime是否同步?

Web Audio API中AudioWorkerNode的状态

在具有多个音频文件的页面上获取当前播放的<audio>文件

仅使用Media Payer的一个实例在android中播放多个音频文件

如何使用 Spotify Web API 制作音频播放器?

使用Javascript和Web Audio API流式传输Icecast音频和元数据

连续播放音频文件(Ionic 3 Native Audio)

通过XMLHttpRequest预加载音频文件