有没有一种方法可以找出声音何时停止在Javascript中播放

Is there a way to find out when a sound has stopped playing in Javascript?

本文关键字:何时停 声音 播放 Javascript 一种 方法 有没有      更新时间:2023-09-26

我正在创建一个游戏。关卡相对较短,在每一关开始时,玩家都会听到旁白(持续x秒的声音)。可能会发生这样的情况:有人在声音结束前达到了这个级别,新级别将开始播放自己的声音,而不是前一个级别的声音。我想让声音排队,为此,我需要知道声音何时停止播放。有这样的活动吗?

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

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

基本上,当音频开始播放时,获取音频和音符的持续时间属性。如果当前时间晚于开始时间+持续时间,则结束。

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

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

这种方法的优点是它也可以在HTML4浏览器中工作。