如何在soundmanager2中声音后启动声音

ave*_*her 7 javascript jquery soundmanager2

如何在soundmanager2中声音后启动声音,我的意思是当第一个声音结束时,第二个声音开始,第二个结束第三个开始等等.

Ash*_*hot 6

var soundArray = ['sound1', 'sound2', ...];
var chain = function (sound) {
soundManager.play(sound, { 
    multiShotEvents: true,
    onfinish: function () {
        var index = soundArray.indexOf(sound);
        if (soundArray[index + 1] !== undefined) {
            chain(soundArray[index + 1]);
        }
    }});
};

chain(soundArray[0])
Run Code Online (Sandbox Code Playgroud)

托盘使用递归,唯一的问题可能发生,当在数组中你把相同的声音两次(链无限)


Jam*_*ice 1

文档中有一个如何执行此操作的示例(请参阅演示 4a)。该play方法采用一个对象作为参数。该对象包含一组选项。这些选项之一是onfinish回调函数:

soundManager.play('firstSound',{
    multiShotEvents: true,
    onfinish:function() {
        soundManager.play('secondSound');
    }
});
Run Code Online (Sandbox Code Playgroud)

multiShotEvents必须将该选项设置为以true使onfinish事件在每个声音完成时触发。默认情况下,只有声音结束后才会触发。

您实际上可以通过这种方式对任意数量的声音进行排队。