如何循环播放音频文件的javascript数组?

时间:2015-05-17 16:26:54

标签: javascript arrays audio for-loop playlist

关于在for循环中使用包含音频源(链接)的数组,我有一个小问题。

这是我的代码,基本上是:

    var audio = new Audio();
    var playlist = new Array('sounds/song0.m4a', 'sounds/song1.m4a', 'sounds/song2.m4a');

        for (var i = 0; i <= playlist.length; i++){
    audio.src = (playlist[i]);
    audio.volume = 0.3;
    audio.loop = false;
    if (audio.ended = true)
        i++;

    if (i = 2) {
        i = 0;
    }

我的控制台在audio.src =(播放列表[i])上给我一个错误; 。谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:8)

您需要使用ended事件

var audio = new Audio(),
    i = 0;
var playlist = new Array('http://www.w3schools.com/htmL/horse.mp3', 'http://demos.w3avenue.com/html5-unleashed-tips-tricks-and-techniques/demo-audio.mp3');

audio.addEventListener('ended', function () {
    i = ++i < playlist.length ? i : 0;
    console.log(i)
    audio.src = playlist[i];
    audio.play();
}, true);
audio.volume = 0.3;
audio.loop = false;
audio.src = playlist[0];
audio.play();