Angular 角度2音频赢得';不要通过更换部件来中断

Angular 角度2音频赢得';不要通过更换部件来中断,angular,typescript,audio,Angular,Typescript,Audio,我想用这段代码来播放音频,效果很好 ngOnInit () { const a = new Audio(); a.src = '../../assets/hello.wav'; a.load(); // auto-start a.play(); } 但是,当我单击“下一步”按钮时,这将引导我进入下一页(因此我在路由的帮助下更改了组件),音频将不会停止(不会中断),音频中的音乐也会在下一页播放。我应该向我的代码中添加什么,以便通过更改音频的分页符来

我想用这段代码来播放音频,效果很好

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

但是,当我单击“下一步”按钮时,这将引导我进入下一页(因此我在路由的帮助下更改了组件),音频将不会停止(不会中断),音频中的音乐也会在下一页播放。我应该向我的代码中添加什么,以便通过更改音频的分页符来实现这一点?

您应该将
音频
定义为组件的一个字段(以便在Ngondestory访问它),并在
Ngondestory
销毁它

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

您可以连接到路由器的导航事件,或者查看其他生命周期事件。