javascript - 为什么 "ended"音频html5事件多次触发?

标签 javascript html audio

我有一个代码,我想在上一首轨道结束时播放下一首轨道,但我有一个问题,当我再次开始播放上一首轨道时,“结束”事件触发了不止一次,我没有想法如何修复它

  AudioPlayer.prototype.listenToEndedTrack = function() {
    var _this = this ;
    this.audioPlayerUid.addEventListener("ended", function() {
       console.log("Ended");
      _this.audioPlayerUid.removeEventListener('ended');
    }) ;
  }

最佳答案

您没有删除事件监听器,因为它需要监听器和事件类型。

根据您的代码示例,这样的事情应该可行:

AudioPlayer.prototype.listenToEndedTrack = function() {
   var _this = this;

   function listener() {
       console.log("Ended");
       _this.audioPlayerUid.removeEventListener("ended", listener);
   }

   this.audioPlayerUid.addEventListener("ended", listener) ;
}

关于javascript - 为什么 "ended"音频html5事件多次触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34398667/

相关文章:

html - 低于 600px 的 css 问题

android - 用于音频文件混合的 FFmpeg 命令出现错误

c# - 第一个完成后播放第二个SoundEffect

video - 使用 ffmpeg 合并视频和音频。音频未结束时循环播放视频

javascript - 如何将样式表应用于动态创建的元素?

javascript - git : How to move git folder inside subfolder and rewrite history to pretend it always was like that?

javascript - 使用 Bootstrap-Vue 时,如何防止在单击嵌套的 b-​​input 组件时关闭 b-dropdown?

javascript - 与另一个 jquery .each 循环的动态 jquery 循环

php - Index.php 导致实时网站出现空警报

javascript - 我在 mamp 服务器上运行的 index.php 没有为我的页面加载任何 javascript 文件