【问题标题】:How to chain playing of several HTML5 audio files like a smooth playlist?如何像流畅的播放列表一样链接播放多个 HTML5 音频文件?
【发布时间】:2014-05-30 01:36:38
【问题描述】:

允许访问有效的音频文件:

<audio src="https://upload.wikimedia.org/wikipedia/commons/9/9b/Zh-Tianjin.ogg"></audio>
<audio src="https://upload.wikimedia.org/wikipedia/commons/8/8a/Zh-Beijing.ogg"></audio>
<audio src="https://upload.wikimedia.org/wikipedia/commons/7/73/Zh-Shanghai.ogg"></audio>
<audio src="https://upload.wikimedia.org/wikipedia/commons/e/e2/Zh-Chengdu.ogg"></audio>

给定一个按钮:

<button id="play">Play me!</button>

鉴于我成功播放了一段音频

$('#play').on('click', function () {
    $("audio")[0].play();
});

这几个音频如何链式播放,一个接一个? -- 纯JS和JQuery,其他JS库都可以。

我的出发点是this fiddle with basic tools


编辑:我之前尝试了很多方法,但都没有成功,使用.durationwindow.setTimeout(function(){do_that}, time_ms).delay() 几种组合都没有成功。见:http://jsfiddle.net/Ka2Nh/7/

【问题讨论】:

    标签: javascript jquery html audio


    【解决方案1】:

    您可以使用ended event 并触发下一个

    var active = false;
    
    $("audio").on("ended", function(){ 
        var audio = $(this).next("audio");
        if (audio.length) {
            audio.get(0).play();   
        } else {
            active = false;   
        }
    });
    
    $('#play').on('click', function () {    
        if (!active) {
            $("audio")[0].play();
            active = true;
        }
    });
    

    JSFiddle:http://jsfiddle.net/yMAs6/1/

    【讨论】:

    • 优雅有效~
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多