如何在jQuery中启动和停止音频文件?

问题描述:

$("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> 

我不知道这件事。我有种从简单的空气中拉出应用程序的功能,并尝试。所以,显然我所做的是错误的,因为它不起作用。如何在jQuery中启动和停止音频文件?

我想要做的是让setTimout函数播放一个音频文件。然后会来一个警戒框,然后停止。

请帮我解决这个问题。

谢谢你

+0

你不需要jQuery来启动/停止音频。 – Satpal

+1

你应该有什么工作 - 假设你的'音频'变量是'

+0

的引用请参阅下面的链接一步一步的解释。 http://stackoverflow.com/questions/8489710/play-an-audio-file-using-jquery-when-a-button-is-clicked – 2016-11-22 13:41:47

你从来没有真正将audio设置为任何东西。

var audio = document.getElementById('audio'); 

audio.play(); 
alert('this is a blocking function, once closed the audio will stop'); 
audio.pause(); 

此外,你设置你的音频播放,警报,然后在超时后停止。 alert是一个阻止功能,因此音频将播放直到您关闭警报,使超时无用,除了延迟音频开始milliSeconds

+0

嗨,是的,我的代码开始工作。但是,是否有停止而不是暂停? –

+0

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio – Brian

你并不需要使用jquery的JavaScript播放声音

Javascritpt

var audio = document.getElementById('audio'); 
//Play 
audio.play(); 
//Pause 
audio.pause(); 
//Stop 
sound.pause(); 
sound.currentTime = 0; 

如果要检测的音频结束时,您可以使用endedmedia event

audio.addEventListener("ended", function(){ 
    audio.pause(); 
    audio.currentTime = 0; 
    $(this).parent().children('.task').toggleClass("completed"); 
    console.log("ended"); 
});