我的音频播放器有问题。
事情是,当音频结束时,应播放下一个音频。这工作正常,但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)
});
}
感谢您的时间和帮助。