点击音效音量不生效问题求助:JS脚本调试
问题分析与修复方案
你的代码里有两个关键问题导致音量设置无效:
- 你给布尔变量
should_play设置了volume属性,但布尔值本身没有这个属性,这行代码完全不起作用 - 每次点击页面时你都会新建一个
Audio实例,但从来没给这个实例设置音量
修复后的基础版代码
var should_play = true; window.onclick = () => { if (should_play) { let soundSource = "https://kahimyang.com/resources/sound/click.mp3"; let sound = new Audio(soundSource); sound.volume = 0.5; // 给实际的Audio实例设置音量 sound.play(); } }
更优的复用实例实现
每次点击都新建Audio实例可能会有性能问题,尤其是频繁点击时,建议提前创建实例并复用:
var should_play = true; // 提前创建Audio实例并设置音量 const clickSound = new Audio("https://kahimyang.com/resources/sound/click.mp3"); clickSound.volume = 0.5; window.onclick = () => { if (should_play) { // 播放前重置播放位置,避免重复点击时音效不触发 clickSound.currentTime = 0; clickSound.play(); } }
另外,原代码里should_play = should_play这行是冗余代码,直接删掉即可。
内容的提问来源于stack exchange,提问作者Marie-Elise fresman
相关产品推荐
相关产品推荐

