可以将HTML5音频currentTime绑定到Angular2中的输入范围值吗?

时间:2018-05-20 19:22:44

标签: angular html5-audio

我试图为音频播放器制作一个擦洗条。我有一个用var audioPlayer = new Audio()创建的HTML 5音频播放器。我想绑定HTML <input type="range">,以便1)范围反映音频位置,但是当我点击范围时,它会将音频位置更改为新位置。我这样做:

<input type="range" min="0" max="{{ audioPlayer.duration }}" [value]="audioPlayer.currentTime" (input)="audioPlayer.currentTime = $event.target.value">

我可以通过点击范围滑块来更改currentTime,但是当currentTime更改时范围滑块不会移动,因此它不会反映当前的音频位置。

我在这里做错了什么?为什么值没有正确绑定?

2 个答案:

答案 0 :(得分:1)

ngModel使用<input type="range" min="0" max="{{max}}" [(ngModel)]="currentTime"/>

E:\Ratna\Angular\Project1\Demo>npm install

npm install 

这是一个有效的Stackblitz:two-way binding

答案 1 :(得分:0)

除了缺少ngModel绑定之外,我还有另一个问题。 Audio-object的属性currentTime似乎是一个getter / setter,所以直接绑定似乎不起作用。

我通过将范围输入绑定到本地数字变量playbackPosition来解决此问题,然后将ontimeupdate - 回调添加到音频播放器对象,将currentTime值复制到{ {1}}变量:

playbackPosition