【问题标题】:How do I loop through a javascript array of audio files?如何循环遍历音频文件的 javascript 数组?
【发布时间】:2015-07-29 03:10:15
【问题描述】:

我有一个关于在 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 = (playlist[i]); 上给了我一个错误。 .有谁知道如何解决这个问题?

【问题讨论】:

    标签: javascript arrays audio for-loop playlist


    【解决方案1】:

    你需要使用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();
    

    【讨论】:

    • 我应该如何在我的代码中实现它?如果我想播放歌曲并循环播放 1 - 结束,下一首歌曲:2,结束,下一首歌曲:3,结束:循环重新开始到 1。 - 编辑:我想我让它工作了,谢谢!
    • 嗯,它似乎可以播放,但是当歌曲结束时,它不会跳到下一首。我应该如何实现?
    • 非常感谢!这对我帮助很大。
    • @ArunPJohny,如何做同样的事情,但在上一个结束后延迟下一首歌曲播放?我正在制作像 Incredibox (incredibox.com) 这样的游戏,我需要像那里一样拥有那种音乐度量。我正在使用拖放来播放声音。
    猜你喜欢
    • 2019-02-09
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 2015-02-02
    • 2020-07-28
    相关资源
    最近更新 更多