我如何才能阻止我的音频在If-Else中循环

vfhzx4xs  于 2022-09-21  发布在  React
关注(0)|答案(1)|浏览(139)

音频在IF语句中循环,但在Else语句中没有暂停,我不知道为什么会发生这种情况,我也使用了if(){ }else if(){ },因为如果我只使用else,那么什么都不能用,如果有人能弄清楚这一点,也请回答!

function loop(){
            var audio1 = new Audio('./sounds/tom-1.mp3');
            var input1 = document.getElementById('input1');
             if(input1.checked == true){
                audio1.play();
                audio1.loop = true;
             }else if(input1.checked == false){
                audio1.pause();
                audio1.loop = false;
            }
        }

这是我的Java脚本代码

<label class="switch">
  <input type="checkbox" id="input1" onclick="loop()">
  <span class="slider round"></span>
</label>

这是我的HTML码

hi3rlvi2

hi3rlvi21#

您每次单击都会创建新的音频,因此您暂停的是新的音频,而不是当前播放的音频。

let audio;
function loop() {
  if (!audio) {
    audio = new Audio("./sounds/tom-1.mp3");
  }
  let input1 = document.getElementById("input1");
  if (input1.checked == true) {
    audio.play();
    audio.loop = true;
  } else if (input1.checked == false) {
    audio.pause();
    audio.loop = false;
  }
}

附注:

切记永远不要使用var

相关问题