Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 设置间隔后暂停音频_Jquery_Html - Fatal编程技术网

Jquery 设置间隔后暂停音频

Jquery 设置间隔后暂停音频,jquery,html,Jquery,Html,我希望在单击停止按钮后停止音频。按照我现在的方式,音频只会停止片刻,然后继续播放 这是我的密码 let x = 500; $("#buttonStart").click(()=>{ setInterval(function() {$('audio')[0].play();}, x); }) $("#buttonStop").click(()=>{ // I WANT TO STOP THE AUDIO COMPLETELY HERE $('audio')

我希望在单击停止按钮后停止音频。按照我现在的方式,音频只会停止片刻,然后继续播放

这是我的密码

let x = 500;

$("#buttonStart").click(()=>{
    setInterval(function() {$('audio')[0].play();}, x);
})

$("#buttonStop").click(()=>{
// I WANT TO STOP THE AUDIO COMPLETELY HERE     
    $('audio')[0].pause();

})

您可以有一个公共布尔值,表示是否应该播放音乐

var musicOn = false;
let x = 500;

$("#buttonStart").click(()=>{
    musicOn = true;
    setInterval(function() {
        if(musicOn==true){
            $('audio')[0].play();
        }, x);
    }
})

$("#buttonStop").click(()=>{
// I WANT TO STOP THE AUDIO COMPLETELY HERE     
    musicOn = false;
})

也许是一个懒惰的解决方案,但肯定会奏效

var task;

$("#buttonStart").click(()=>{
    task = setInterval(function() {$('audio')[0].play();}, x);
})

$("#buttonStop").click(()=>{
// I WANT TO STOP THE AUDIO COMPLETELY HERE     
    clearInterval(task);
})

您可以将播放间隔设置为变量,然后单击“停止”按钮时,可以使用clearInterval清除间隔

  let x = 500;
  let playing;

  $("#buttonStart").click(()=>{
    playing = setInterval(function() {$('audio')[0].play();}, x);
  });

  $("#buttonStop").click(()=>{    
    clearInterval(playing);
  });

您的setInterval正好在if语句之后结束,应该低1行;)为什么要使用
setInterval
?如果有的话,您应该使用
setTimeout
,因为它只运行一次。ClearInterval是正确的答案,但仍然没有解释为什么要使用setInterval。音频是在循环播放吗?我很高兴这个解决方案有效!请花点时间将此答案标记为解决方案。它帮助像我这样的用户获得信誉,并使stackoverflow整体变得更好。谢谢