gpt4 book ai didi

javascript - 使用 buzz.js 播放一个接一个的声音

转载 作者:行者123 更新时间:2023-11-30 18:01:53 24 4
gpt4 key购买 nike

我正在尝试按照标题读取播放 buzz.js 声音对象一个接一个。我曾尝试使用 events - ended 回调,但这对于大量文件来说变得很严格。我以为我可以创建我的声音列表,遍历它们并调用一次绑定(bind),但这没有用,因为迭代不会等待回调完成。我正在使用 node.js。

这是我目前所拥有的:

 var mySound1 = new buzz.sound("/sound/001000.mp3");
var mySound2 = new buzz.sound('/sound/001001.mp3');
var mySound3 = new buzz.sound('/sound/001002.mp3');


for (var i = 0, max = 3; i < max; i++) {
var sPath = '/sound/001' + soundArray[i].value + '.mp3';

var sound1 = new buzz.sound(sPath);
sound1.play().bind('ended', function(e){
//here i want sound1 to finish before sound2 plays and so forth
});
}

我怎样才能等到 sound1 结束后 sound2 才开始以动态方式播放?

最佳答案

可能不是最优雅的解决方案,buzz 允许您定义可以用来代替数组的组,但是:

尝试将您要播放的所有文件添加到一个数组,然后遍历所述数组,将结束事件绑定(bind)到触发下一首歌曲播放的每个元素。

一个极其简单的例子:

var files = [new buzz.sound('audio1.mp3'), new buzz.sound('audio2.mp3'), new buzz.sound('audio3.mp3')];

files.forEach(function(element, index) {
element.bind('ended', function(e) { // when current file ends
files[index+1].play(); // trigger the next file to play
});
})

files[0].play(); // start the first file that triggers the rest

关于javascript - 使用 buzz.js 播放一个接一个的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16778993/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com