JavaScript播放列表

时间:2013-09-30 18:25:54

标签: javascript jquery html audio

我有一些音频文件(a.mp3,b.mp3,c.mp3)和一个随机数组(b,c,a)。我想按照给定的顺序播放这些音频文件,例如播放列表 到目前为止,这是我的代码:

<audio id="player" />

<script>
//... extract

var player = document.getElementById('player');
player.src="audio/"+array[0]+".mp3";
player.play(); // play first file

for(c = 0; c < array.length; c++){
var next = "audio/"+array[c]+".mp3";
document.write(next);
    player.addEventListener("ended",function() {
        this.src = next;
        this.play();
    });
}
</script>

问题是,在播放第一个文件后,第二个文件将永远播放。它永远不会停止,下一个文件无法播放。

1 个答案:

答案 0 :(得分:2)

你不需要循环,从“结束的”监听器中确定下一步:

var current = 0;
// ...
player.addEventListener("ended",function() {
    current = current + 1 < array.length ? ++current : 0;
    this.src = "audio/" + array[current] + ".mp3";
    this.play();
});