用buzz.js播放一个又一个声音
Play one sound after another with buzz.js
我正试图作为标题读取播放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允许您定义可以使用的组,而不是数组,但是:
尝试将您想要播放的所有文件添加到数组中,然后循环该数组,将结束事件绑定到触发下一首歌曲播放的每个元素。
一个非常简单的例子:
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
相关文章:
- jQuery使一个又一个充满活力
- RaphaelJS:如何制作一个又一个元素的动画
- 如何运行一个又一个脚本
- 使用 jQuery animate 时绘制一个又一个对象的线条
- 为什么当我调用一个又一个函数时,它调用的都是以前的
- 在 JavaScript 中延迟一个又一个函数的最佳方法
- 在 Ajax 加载的外部 html 中调用一个又一个脚本的事件
- JavaScript:一个又一个循环不执行
- 如何在Javascript中以过程化的方式运行一个又一个语句
- $('html').单击一个又一个单击事件
- WebGL-呈现一个又一个形状时出现问题
- 如何化解一个又一个的承诺
- 如何使用
- JavaScript Regex(替换),如果缺少一个又一个单词
- 用buzz.js播放一个又一个声音
- 从URL运行一个又一个函数
- 如何启动一个又一个脚本
- 玩一个又一个精灵表
- 如何在D3.js中运行一个又一个函数
- PhantomJS打开一个又一个页面