通过更改组件

时间:2017-07-13 08:11:54

标签: angular typescript audio

我想借助此代码播放音频并且工作正常

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

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

1 个答案:

答案 0 :(得分:4)

您应将audio定义为组件的字段(以便在ngOnDestroy中访问它)并在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;
  }
}