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

标签 javascript html audio

此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/

相关文章:

javascript - Adobe AIR 和多个 XMLHttpRequest ……很奇怪

javascript - 使用 HLS 在 HTML5 视频元素中播放音频

html - 媒体查询 css 文件未检测到

javascript - 造型 Facebook Likebox

javascript - 发送不带 html 标签的文本

javascript - 在 Sequelize-CLI 中仅恢复两个迁移之一?

python - Psychopy Pyo自定义音频

android - 单击小部件时播放声音

JavaFx 音频文件无法播放

javascript - 使用 JS 将 Windows-1252 转换为 UTF-8