2012-04-02 53 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事件。

相关问题