在Javascript循环音频直到警报被解雇

时间:2015-04-22 18:18:37

标签: javascript audio

我一直在做一些研究,并没有找到任何有助于解释/引导我朝着正确方向前进的方法。这就是我到目前为止所拥有的。它可以工作,但警报仅在预设时间内播放。我希望它能玩到#34; Ok"单击警报上的按钮。感谢



<script type="text/javascript">

setInterval(function(){   
var old_count=<?php echo $arr['counter'];?>;
var audio=document.getElementById('audiotag1');
    $.ajax({
        type : "POST",
        url : "dbcheck.php",
        timeout: 4000,
		
        success : function(data){
            if (data > old_count) {
                alert('New Hot Part Has Been Entered.');
		document.getElementById('audiotag1').play();
		old_count=data;
				
		window.setTimeout(function(){ 
		       location.reload();
		}, 10000);
            }

        }
    });
	
},5000);

</script>

<audio id="audiotag1" src="alert.wav" preload="auto"></audio>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

当您使用标志进行音频循环并收听ended元素的audio事件时,

非常容易实现。

audio.addEventListener('ended', function(){
    if(loopAudio){
        audio.play();
    }
});
...
// where you trigger the alert.
loopAudio = true;
audio.play();        
alert('click ok to stop audio looping.');
loopAudio = false;
audio.pause(); // if you want
...

Fiddle Demo

答案 1 :(得分:0)

我尝试创建问题的静态版本(html)。如果将音频的循环参数设置为true。即使警报框打开,音频也不会停止。我在下面粘贴了我的代码。如果我误解了你的问题,请告诉我。

<!DOCTYPE html>
<html>
<head>
<title>Audio Loop</title>
</head>

<body onload="onload()">
<input type="text" value="1"> </input>
<audio id="audiotag1" src="alert.wav" preload="auto" ></audio>
<input type="button" value="ok" onclick="stopAudio()"></input>
</body>
<script>


function onload(){
var old_count=document.getElementById('counter');
var audio=document.getElementById('audiotag1');
audio.loop=true;
audio.load();
audio.play()
}
function stopAudio(){
alert("Before Pause");
var audio=document.getElementById('audiotag1');
audio.pause();
}
</script></html>