有没有办法找出声音何时停止播放Javascript?

时间:2012-04-02 15:34:29

标签: javascript events audio browser

我正在制作一款游戏。水平相对较短,并且在每个水平开始时,玩家听到叙述(持续x秒的声音)。可能会发生某人在声音结束前进入水平,并且新级别将开始播放前一个声音的声音。我希望声音排队,为此,我需要知道声音何时停止播放。是否有事件发生?

4 个答案:

答案 0 :(得分: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 :(得分:1)

您可能会发现this link有用。它有一个播放多个声音的例子,它显示了一种跟踪文件是否完整的方法。

基本上,获取音频的持续时间属性并在开始播放时注意。如果当前时间晚于开始时间+持续时间,则完成。

答案 2 :(得分:0)

如果您使用HTML5 <audio>元素,则会在到达音频文件末尾时触发ended事件。

答案 3 :(得分:-1)

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

这种方法的优点是它也适用于HTML 4浏览器。