2014-03-31 89 views
1

我在3D中做了一个小型赛车游戏。例如,我希望当玩家按下速度时,他首先以及以后的速度发出声音。但一开始只有一次和一次循环的速度。 我的HTML:在js的X秒后停止音频

<audio preload="auto" id="start"><source src="sounds/start.mp3" type="audio/mp3"></audio> 
<audio preload="auto" id="speed"><source src="sounds/speed.mp3" type="audio/mp3"></audio> 

我试图在JS这件事情,但没有奏效:

document.getElementById('start').play(); 
setTimeout(document.getElementById('speed').play(),2000); 
setTimeout(document.getElementById('start').pause(),2000); 

我该怎么办? 感谢

+0

这个'document.getElementById('speed')。play()'立即被调用,不会等待2秒钟。 –

+0

是的,但是如何做,玩的开始,什么时候完成,循环播放速度? – user3414480

回答

0

你需要在一个匿名函数来包装你的电话,让他​​们没有立即调用,例如:

var player = document.getElementById('player'); 
setTimeout(function(){ 
    player.play(); 

    setTimeout(function(){ 
     player.pause(); 
     player.currentTime = 0; 
    }, 2000); 
}, 1000); 

小提琴:http://jsfiddle.net/fyfRd/

停止文件,你需要暂停并重置当前时间到0

+0

好的,谢谢,但是如何在完成时停止开始? – user3414480

+0

我添加了一个小提琴 –

+0

为什么相同的代码不能在移动浏览器中工作? – Vineet