Typescript eventListener多次触发

时间:2018-02-07 08:35:44

标签: typescript ionic-framework ionic2 ionic3

我的音频播放器有问题。

事情是,当音频结束时,应播放下一个音频。这工作正常,但eventListener多次触发,所以它做了奇怪的事情。 我尝试使用removeEventListener,但没有工作,我真的不知道我还应该做些什么。

这是eventListener代码,它位于一个函数内,用于检查音频是应该播放还是暂停,该部分是否正常工作。

playPause(item,i) {
 console.log("i value", i)
    if (i <= this.array.length - 1) {
      let audioTemp = url
      if (!this.audio || this.audio.src != audioTemp) {
        if (this.audioBefore == null) {
          this.audioBefore = item;
        }
        if (this.audioBefore != item && this.audioBefore != null) {
          this.audioBefore.init = "play";
          this.audioBefore = item;
        }
        this.audio = document.getElementById('thePlayer') as HTMLAudioElement;

        this.audio.src = url
        setTimeout(() => {
          this.audio.play();
          item.init = "pause";
        }, 150)

      } else {

        if (this.audio.paused) {

          setTimeout(() => {
            console.log("PLAY")
            this.audio.play();
            item.init = "pause"
          }, 150)




        } else {
          setTimeout(() => {
            console.log("PAUSE")
            item.init = "play"
            this.audio.pause();

          }, 150)

        }
      }
    } else {
      this.array[i].init = "pause";
    }

    setTimeout(() => {
      this.audio.addEventListener('ended', () => {
          this.playPause(this.array[i + 1], i + 1);
      }, 300)
    });
}

感谢您的时间和帮助。

0 个答案:

没有答案