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整体变得更好。谢谢