Javascript 声音不';I don’我不能玩预期的次数
我尝试多次播放音效;首先,按下按钮触发,然后再播放两次,间隔为最后一次播放后两秒 我当前(相关)的HTML: 最初,我试图通过使用for循环来解决这个问题,并将其仅包含在一个函数中:Javascript 声音不';I don’我不能玩预期的次数,javascript,Javascript,我尝试多次播放音效;首先,按下按钮触发,然后再播放两次,间隔为最后一次播放后两秒 我当前(相关)的HTML: 最初,我试图通过使用for循环来解决这个问题,并将其仅包含在一个函数中: function playRing_Delay() { setTimeout(function playRing() { var audio = document.getElementById("ring_audio"); for (i = 0; i < 4; i++)
function playRing_Delay() {
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
for (i = 0; i < 4; i++) {
if i < 3 { //the first two times
audio.play(); //plays audio as normal
}
else { //the last time it plays
audio.play();
setTimeout(function stopRing() {
audio.pause();
}, 500) //stops audio after half a second
}
}
}, 5000);
}
函数播放\u延迟(){
setTimeout(函数播放(){
var audio=document.getElementById(“环音频”);
对于(i=0;i<4;i++){
如果前两次我<3{//
audio.play();//正常播放音频
}
否则{//最后一次播放
音频播放();
setTimeout(函数stopRing(){
audio.pause();
},500)//半秒钟后停止音频
}
}
}, 5000);
}
不幸的是,这不起作用,所以我尝试将第一位重复三次,只是增加等待毫秒的数量,以便它们能够正确地连续出现;我不打算粘贴它,因为本质上我只是将playRing\u Stop()的内容放在playRing\u Delay()的内容中
此外,我注意到,当我改变最后一个环的等待时间(从9000ms>2000ms)时,它开始播放,然后是设置为5000ms(如预期的那样),而第二个环(7000ms)没有
有人能提供一个解决方案吗?或者至少向我解释一下为什么会这样
注意:在for-loop方法失败后,我故意在其他方法中忽略了第三个环的早期停止点。发生这种情况是因为
#ring_audio
文件长3秒,而您试图在2秒后重播它。因此,当您向它发出第二个play
命令时,它仍在播放
如果要在完成之前重新启动它(或等待整整3秒钟,然后在它上重新运行play
),则应将其currentTime
设置为0
非常感谢。你知道为什么它仍然是第二次而不是第三次吗?@paypercrane由于我在回答中提到的问题,跳过了第二次重复。我的阅读理解显然需要一些工作。再次感谢!
function playClick() {
var audio = document.getElementById("click_audio");
audio.currentTime = 0.3;
audio.play();
}
function fade_title() {
var titlescreen = document.getElementById("title_screen");
titlescreen.style.display = "none";
}
function playRing_Delay() {
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
audio.play();
}, 5000);
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
audio.play();
}, 7000);
}
function playRing_Stop() {
setTimeout (function playRing() {
var audio = document.getElementById("ring_audio2");
audio.play();
}, 9000);
}
function playRing_Delay() {
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
for (i = 0; i < 4; i++) {
if i < 3 { //the first two times
audio.play(); //plays audio as normal
}
else { //the last time it plays
audio.play();
setTimeout(function stopRing() {
audio.pause();
}, 500) //stops audio after half a second
}
}
}, 5000);
}
function playRing_Delay() {
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
audio.play();
}, 5000);
setTimeout(function playRing() {
var audio = document.getElementById("ring_audio");
audio.currentTime = 0;
audio.play();
}, 7000);
}