音频文件播放时机优化:点击时重置音频播放的实现方案
解决音频点击需等待播放完毕才能再次触发的问题
问题分析
你的代码存在两个关键问题:
- 变量名不匹配:创建的音频实例是
jumpy,但点击事件里调用的是不存在的jumpy2,会导致音频无法正常触发。 - 未重置音频播放位置:默认情况下,音频播放完毕后需等待结束才能再次播放,正在播放时点击也不会从头开始。
解决方案
修改代码,在每次点击时先重置音频到起始位置,再触发播放:
const jumpy = new Audio(); jumpy.src = "./audio/jump2.wav"; const cvs = document.getElementById("ghost"); cvs.addEventListener("click", function(evt){ // 将音频播放位置重置到开头 jumpy.currentTime = 0; // 触发播放 jumpy.play(); });
关键说明
currentTime = 0:这个属性控制音频的当前播放进度,设置为0会让音频立刻回到起始点,不管之前是处于播放状态还是已播放完毕。- 修正变量名:确保调用的音频实例和你创建的一致,避免出现
ReferenceError错误。
修改后,每次点击元素都会立即从头播放音频,无需等待上一次播放结束。
内容的提问来源于stack exchange,提问作者relster
相关产品推荐
相关产品推荐

