índice.ts
if(audio.paused) { audio.play() audio.addEventListener('timeupdate', (e) => handleAudioPlayer(<HTMLAudioElement>e.target, <HTMLDivElement>audio.parentElement), true); } else { audio.pause() audio.removeEventListener('timeupdate', () => handleAudioPlayer, true); }Básicamente, tengo una función handleAudioPlayer que toma 2 argumentos, cuando el audio se está reproduciendo, se agrega el detector de eventos, y cuando está en pausa, debe eliminarse, pero aquí los detectores de eventos se duplican, lo cual es malo, ¡cualquier ayuda es apreciada!
Está intentando eliminar una función diferente a la que agregó en primer lugar. En su lugar, intente agregar y eliminar el mismo controlador.
const handler = (e) => handleAudioPlayer(<HTMLAudioElement>e.target, <HTMLDivElement>audio.parentElement) audio.addEventListener('timeupdate', handler, true) audio.removeEventListener('timeupdate', handler, true)En su caso, debe declarar su función a una variable. Luego puede eliminar eventListener .
if(audio.paused) { audio.play() audio.addEventListener('timeupdate', handleAudioPlayer, true); } else { audio.pause() audio.removeEventListener('timeupdate', handleAudioPlayer, true); } let handleAudioPlayer = (evt) => { // do something };