为什么audio.pause()不能与TypeScript一起使用,而是audio.play();效果很好?

时间:2019-03-06 10:25:16

标签: typescript angular-cli html5-audio

我对HTMLMediaElement的pause()函数有问题。我试图暂停音频,但没有任何反应。 play()每次都运行良好:

export class personalCard { 
j = 0;

playAudio(){
let aud = new Audio ('../../assets/aud/Magdalena_Su_ß.opus');


this.j= this.j + 1;

if(this.j % 2 == 0){
  aud.pause();
  console.log('Pause');
   }

else if(this.j % 2 != 0){
  aud.play();
  console.log('Play');
   }

 }
}

HTML:

<button id="volume" (click)="playAudio()"></button>

我还可以在控制台上看到日志“ pause”,但是aud.pause();永远无法工作。我不使用任何音频框架。 有人可以帮助我解决问题吗?

非常感谢你, 山姆

1 个答案:

答案 0 :(得分:0)

用于访问pause(),mutate()或load()变量aud,必须在类中声明为全局访问。

解决方案:

export class personalCard { 
j = 0;
aud = new Audio ('../../assets/aud/Magdalena_Su_ß.opus');

playAudio(){

this.j= this.j + 1;

if(this.j % 2 == 0){
  aud.pause();
  console.log('Pause');
  }

else if(this.j % 2 != 0){
  aud.play();
  console.log('Play');
     }
   }

}