【问题标题】:How can I stop my audio from looping in an if-else statement?如何阻止我的音频在 if-else 语句中循环?
【发布时间】:2022-09-24 03:58:03
【问题描述】:

音频按照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;
        }
    }

和 HTML:

    <label class=\"switch\">
        <input type=\"checkbox\" id=\"input1\" onclick=\"loop()\">
        <span class=\"slider round\"></span>
    </label>
  • 值得注意的是,您的else if 原样可能只是else,因为!input1.checkedinput1.checked 的补充

标签: javascript html if-statement html5-audio


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-01
    • 2015-10-28
    • 2022-11-23
    • 1970-01-01
    • 2014-09-15
    • 1970-01-01
    • 2017-02-17
    • 2015-11-08
    相关资源
    最近更新 更多