Angular 角度-检测音频结束

Angular 角度-检测音频结束,angular,Angular,当用户单击按钮时,函数将播放音频文件。当这个文件完成后,我需要调用另一个函数 我找不到绑定此事件的方法,我已尝试添加OnEnd on audio标记,通过我的组件连接eventlistener,将player currentTime设置为0,我不知道Angular是否有()或[]方式来绑定此状态 最佳/正确的方法是什么 模板: <div class="telaJogo container-fluid" *ngIf="showJogo"> <audio id="

当用户单击按钮时,函数将播放音频文件。当这个文件完成后,我需要调用另一个函数

我找不到绑定此事件的方法,我已尝试添加OnEnd on audio标记,通过我的组件连接eventlistener,将player currentTime设置为0,我不知道Angular是否有()或[]方式来绑定此状态

最佳/正确的方法是什么

模板:

    <div class="telaJogo container-fluid" *ngIf="showJogo">
     <audio id="player">
      <source src="/assets/vaifilhao.mp3" type="audio/mp3">
      Your browser does not support the audio element.  
     </audio>
    <img src="/assets/play.png" alt="play" (click)="play()">

检测音频何时停止播放:

const player = <HTMLAudioElement>document.getElementById("player");

Observable.fromEvent(player, 'ended').subscribe(console.log);
constplayer=document.getElementById(“player”);
可观察的.fromEvent(player,'end').subscribe(console.log);
但这真的不是一种棱角分明的方式。您可以创建指令并将其附加到音频标记。指令可能包含
@Input
s,因此您可以定义在
结束
事件时应执行的操作

在指令中,您可以使用
@HostListener('end')


请参阅更多信息:

检测音频何时停止播放:

const player = <HTMLAudioElement>document.getElementById("player");

Observable.fromEvent(player, 'ended').subscribe(console.log);
constplayer=document.getElementById(“player”);
可观察的.fromEvent(player,'end').subscribe(console.log);
但这真的不是一种棱角分明的方式。您可以创建指令并将其附加到音频标记。指令可能包含
@Input
s,因此您可以定义在
结束
事件时应执行的操作

在指令中,您可以使用
@HostListener('end')


请参阅更多信息:

音频和视频等媒体在媒体结束后会触发一个名为ONENED的事件。因此,您可以像这样将函数直接附加到组件控制器上的事件

请注意audio标记元素上的事件(已结束)

audio.component.html

<audio (ended)="audioEnded()" preload="auto" #audioPlayer>
    <source [src]="pathToTheSource" type="audio/mp3">
</audio>

音频和视频等媒体在媒体结束后会触发一个名为“统一”的事件。因此,您可以像这样将函数直接附加到组件控制器上的事件

请注意audio标记元素上的事件(已结束)

audio.component.html

<audio (ended)="audioEnded()" preload="auto" #audioPlayer>
    <source [src]="pathToTheSource" type="audio/mp3">
</audio>

AudioModel
已声明为
HTMLAudioElement
。它包含所有内容,如
播放
暂停
等。请参阅:
AudioModel
已声明为
HTMLAudioElement
。它包含所有内容,如
播放
暂停
等。请参阅:
@ViewChild('audioPlayer') audioPlayer: ElementRef;

audioEnded(): void {
    console.log('ended!!')
}