0

我有一些音频文件(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>

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

4

1 回答 1

2

您不需要循环,决定“结束”侦听器的下一步是什么:

var current = 0;
// ...
player.addEventListener("ended",function() {
    current = current + 1 < array.length ? ++current : 0;
    this.src = "audio/" + array[current] + ".mp3";
    this.play();
});
于 2013-09-30T18:35:20.813 回答