0

我需要创建一个播放列表并运行它。我还需要通知几秒钟音乐将播放。

我为此使用数组:

var listMusic = ["hs.wav", "gs.wav"];
var musicDuration = ["10", "20"];

如何必须播放列表中的所有歌曲,我使用一个 FOR 来表示:

for(i = 0; i < listMusic.length; i++)
{
    var music = listMusic[i];
    setInterval(function() {playSound("'" + music + "'");}, musicDuration[i] * 1000);
}

这是我的函数 playSound():

function playSound(music){
document.getElementById("span_alerta").innerHTML = "<embed src='" + music + "' hidden=false autostart=true loop=false playcount=3>";    

}

因此,他只是在播放阵列的最后一曲。发生这种情况是因为 LOOP 在我等待 10 秒时执行了两次

有谁知道我该如何解决这个问题?

4

1 回答 1

1

我相信你可能会找到很多库来处理这些东西。无论如何,您可以在递归函数中修改您的代码

var index=-1;
function playNext() {
    index++;
    var music = listMusic[i];
    if (music) {
        playSound("'" + music + "'");
        setInterval('playNext', musicDuration[index] * 1000);
    }
}
于 2013-06-25T14:27:15.750 回答