我试图为音频播放器制作一个擦洗条。我有一个用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
更改时范围滑块不会移动,因此它不会反映当前的音频位置。
我在这里做错了什么?为什么值没有正确绑定?
答案 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