$("ul").on("click", ".start", function() {
console.log("started");
var timeInput = $(this).parent().children('.time');
var timeInputValue = timeInput.val();
var milliSeconds = Number(timeInputValue)*60*1000;
console.log(milliSeconds);
setTimeout(() => {
audio.play();
alert("Time Over");
audio.pause();
$(this).parent().children('.task').toggleClass("completed");
}, milliSeconds);
})
<audio src="assets/audio/siren.mp3" id="audio"></audio>
我对此一无所知。我有点从空气中汲取应用功能并尝试。所以,显然我所做的是错误的,因为它不起作用。
我要做的是,让setTimout函数播放音频文件。然后会出现一个警报框,然后停下来。
请帮帮我。
谢谢
答案 0 :(得分:1)
您实际上从未将audio
设置为任何内容。
var audio = document.getElementById('audio');
audio.play();
alert('this is a blocking function, once closed the audio will stop');
audio.pause();
此外,您要将音频设置为播放,提醒,然后在超时后停止所有音频。 alert
是一个阻止功能,因此音频将一直播放,直到您关闭警报,使得超时无效,而不是将音频开始延迟milliSeconds
。
答案 1 :(得分:0)
您无需使用jquery在javascript中播放声音
<强> Javascritpt 强>
var audio = document.getElementById('audio');
//Play
audio.play();
//Pause
audio.pause();
//Stop
sound.pause();
sound.currentTime = 0;
如果您想检测音频的结尾,可以使用ended
media event
audio.addEventListener("ended", function(){
audio.pause();
audio.currentTime = 0;
$(this).parent().children('.task').toggleClass("completed");
console.log("ended");
});