2012-04-02 52 views
2

我正在創建一個遊戲。這些級別相對較短,並且在每個級別開始時,玩家會聽到一段敘述(聲音持續x秒)。在聲音結束之前,有人可能會遇到低音,新聲道會開始播放自己的聲音。我想讓聲音排隊,爲此,我需要知道聲音何時停止播放。是否有這樣的事件?有沒有辦法找出聲音何時停止在Javascript中播放?

+0

HTML5遊戲嗎?你需要支持舊版瀏覽器嗎? – chchrist 2012-04-02 15:37:05

+0

不,大聲笑,我不知道。 – corazza 2012-04-02 15:37:23

回答

7
var mySound = new Audio('mySoundFile.ogg'); 
mySound.addEventListener('ended', function() { 
    alert("Finished playing sound"); 
}, false); 
mySound.play(); 

其他事件,看到http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#mediaevents

+1

Downvoted for w3schools鏈接。如果你可以用一個更可靠的來源取代它,我會很樂意將它改爲提高投票率。 – 2012-04-03 09:12:50

+0

@SimonWest現在好嗎? ;) – ArtBIT 2012-04-04 12:17:13

+2

更好,upvoted作爲承諾 – 2012-04-04 12:52:26

0

您可以使用SWF播放器播放聲音(http://flash-mp3-player.net),它具有回叫功能,一旦播放完成就會通知您。

這種方法的優點是它也可以在HTML 4瀏覽器中工作。

0

您可能會感興趣this link有用。它有一個播放多個聲音的例子,它顯示了一種跟蹤文件是否完整的方法。

基本上,獲取音頻的持續時間屬性並在開始播放時進行記錄。如果當前時間晚於開始時間+持續時間,則結束。

0

如果您使用HTML5 <audio>元素,則在到達音頻文件結尾時觸發ended事件。

相關問題