我有一个代码,我想在上一首曲目结束时播放下一首曲目,但是我有一个问题,当我再次开始播放上一首曲目时,“结束”事件触发的次数超过一次,我不知道如何修理它

  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) ;
}

07-24 14:21