在完成之前重新启动HTML5音频元素(JS:setTimeout)

时间:2017-06-11 23:59:10

标签: javascript html5 audio

此JS代码指的是播放4秒.mp3:

的HTML5音频元素
function playTone(){
    document.getElementById('tone').play();
};
setTimeout(playTone,2000);
setTimeout(playTone,7000);

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

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

1 个答案:

答案 0 :(得分:1)

您必须在播放音频之前将音频的当前时间设置为开头。这个功能应该有效。

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