【问题标题】:Restart HTML5 audio element before it completes (JS: setTimeout)在完成之前重新启动 HTML5 音频元素(JS:setTimeout)
【发布时间】:2017-06-11 23:59:09
【问题描述】:

此 JS 代码引用了一个播放 4 秒 .mp3 的 HTML5 Audio 元素:

function playTone(){
    document.getElementById('tone').play();
};
setTimeout(playTone,2000);
setTimeout(playTone,7000);

这可以播放两次音调。但是,如果我将第二个 setTimeout 设置为 3000(我想这样做),它只会播放一次,因为第一个 mp3 尚未完成播放。有没有办法解决这个问题?如何让 Audio 元素在完成之前从头开始重新启动?

出于我的目的,我想调用相同的元素,而不是动态地创建一个新元素。上下文是我想在页面上选择这些音频元素,并使用JS将它们作为乐器演奏。

【问题讨论】:

    标签: javascript html audio


    【解决方案1】:

    在播放音频之前,您必须将音频的当前时间设置为开始时间。这个功能应该可以工作。

    function playTone(){
        var tone = document.getElementById('tone');
        tone.currentTime = 0;
        tone.play();
    }
    

    【讨论】:

    • 是的!简单的!谢谢!
    猜你喜欢
    • 2015-06-21
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2016-01-13
    • 1970-01-01
    • 2015-09-02
    • 2019-12-22
    相关资源
    最近更新 更多