JavaScript节拍器开发问题:无法按当前BPM播放声音
JavaScript节拍器BPM无法动态生效的问题
我是一名新手,正在开发一款JavaScript节拍器,但卡在了让声音按照当前设置的BPM播放这一步。
点击播放按钮后,声音会播放,但始终是固定的BPM,并非bpm变量中设置的数值,我认为问题出在这段代码里:
//VARIABLES let bpm = 150; let soundInterval = (60/bpm)*1000; //FUNCTIONS //START METRONOME let startStopMetronome = startButton.addEventListener('click', () => { startMetronome(soundInterval); }) function startMetronome(si) { setTimeout(() => { primaryBeat.play(); startMetronome(si); },si); }
更新说明
我尝试通过函数更新soundInterval,但问题依旧——无论bpm如何更改,声音始终按固定间隔播放:
//VARIABLES let bpm = 150; let soundInterval; //FUNCTIONS //START METRONOME let startStopMetronome = startButton.addEventListener('click', () => { soundInterval = calculateSoundInterval(); startMetronome(soundInterval); }) function startMetronome(si) { setTimeout(() => { primaryBeat.play(); startMetronome(si); },si); } let calculateSoundInterval = () => { return (60/bpm)*1000; } let updateBpmInDisplay = display.addEventListener('change', ()=> { soundInterval = calculateSoundInterval(); })
内容的提问来源于stack exchange,提问作者Zeke Cachi
相关产品推荐
相关产品推荐

