typescript - Angular 2 lyd vil ikke slutte å fungere ved å bytte komponent


Jeg vil spille av lyd med hjelp av denne koden, og det fungerer bra

  ngOnInit () {
    const a = new Audio();
    a.src = '../../assets/hello.wav';
    a.load();
    // auto-start
    a.play();
  }

Men når jeg klikker på Neste-knappen, som tar meg til neste side (så jeg bytter komponenten min med hjelp av ruting), vil ikke lyden stoppe (den vil ikke brytes) og musikken fra lyden spiller på neste side også. Hva bør jeg legge til i koden min for å gjøre det mulig at lyden stopper når jeg bytter side?

Svar #1

du skal definere audio som et felt i komponenten din (for å få tilgang til det i ngOnDestroy) og ødelegge det i ngOnDestroy.

audio: any;

ngOnInit () {
  this.audio = new Audio();
  this.audio.src = '../../assets/hello.wav';
  this.audio.load();
  // auto-start
  this.audio.play();
}

ngOnDestroy() {
  // destroy audio here
  if(this.audio) {
    this.audio.pause();
    this.audio = null;
  }
}

Relaterte artikler