你如何检测HTML5音频何时播放(不止一次)?

eve*_*odd 22 javascript audio jquery html5

我在检测标签播放完MP3时遇到问题.当我做这样的事情时:

     myAudio.addEventListener("ended", function() 
     {
          alert("ended");
     });
Run Code Online (Sandbox Code Playgroud)

它仅在第一次播放音频时发生.当我再次播放音频时,没有任何反应.当我使用这个onended=doThis();方法时会发生同样的事情.我听说也许有一种方法可以在jQuery中做到这一点,但我还没有能够让它工作.我也听说有可能通过id每次播放mp3时更改音频div来修复它,但这对我不起作用,因为我需要id保持不变.

有没有人有任何想法?

Cri*_*ufu 37

ended事件基于.currentTime属性创建. http://w3c.github.io/html/semantics-embedded-content.html#eventdef-media-ended

所以,你所要做的就是.currentTime再次设置为零.

myAudio.addEventListener("ended", function(){
     myAudio.currentTime = 0;
     console.log("ended");
});
Run Code Online (Sandbox Code Playgroud)

  • 做到了!但在那之前我也不得不暂停它,否则它只会是一个无限循环 (2认同)