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

时间:2016-11-22 13:35:31

标签: javascript jquery audio

$("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函数播放音频文件。然后会出现一个警报框,然后停下来。

请帮帮我。

谢谢

2 个答案:

答案 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");
});