2014-03-31 124 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