2016-11-22 8 views
-1
$("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関数でオーディオファイルを再生することです。その後、警告ボックスが来て、その後は停止します。

お願いします。

は、あなたが実際には何にaudioを設定することはありません

+0

オーディオの開始/停止にjQueryは必要ありません。 – Satpal

+1

あなたが持っているものは、あなたの 'audio'変数が'

+0

以下のリンクを参考にして、ステップバイステップの説明を参照してください。 http://stackoverflow.com/questions/8489710/play-an-audio-file-using-jquery-when-a-button-is-clicked –

答えて

1

ありがとうございました。

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

0

あなたはjavascriptで

をサウンドを再生するためにjqueryのを使用する必要はありません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"); 
}); 
関連する問題