此JS代码引用播放4秒.mp3的HTML5 Audio元素:
function playTone(){
document.getElementById('tone').play();
};
setTimeout(playTone,2000);
setTimeout(playTone,7000);
这样可以播放两次声音。但是,如果我将第二个setTimeout设置为3000(我想这样做),则它只能播放一次,因为第一个mp3尚未完成播放。有办法解决这个问题吗?如何使音频元素在完成之前从头开始重新启动?
就我的目的而言,我想调用相同的元素,而不是动态创建一个新元素。上下文是我希望在页面上选择这些音频元素,然后使用JS来将它们作为乐器演奏。
最佳答案
在播放音频之前,必须将音频的当前时间设置为开始时间。此功能应该起作用。
function playTone(){
var tone = document.getElementById('tone');
tone.currentTime = 0;
tone.play();
}
关于javascript - 在完成之前重新启动HTML5音频元素(JS:setTimeout),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44489802/