问题描述
我使用Angular 8和Typescript
问题::我希望数组与音频标签的音乐源具有相同的长度,以启用与轨道中预期位置同步的注释。与soundcloud类似。
技术方法:
我有一个带有一个音频文件的音频标签。这个持续时间我可以使用@H_404[email protected]dioplayer.duration
访问现在我有一个数组@H_404_11@public comments = [],我希望它的长度与轨道持续时间相同
@H_404_11@<div *ngFor="let comment of comments"> </div>
我尝试了同步它们
@H_404_11@ ngAfterViewInit() { this.comments.length= this.audioplayer.duration }
但是我得到无效的数组长度。有办法使这项工作吗?
解决方法
您需要使用正确数量的元素初始化数组:
comments = new Array(this.audioplayer.duration);
,
即使您以相同的音乐持续时间制作一个阵列,也不会得到想要的东西。因为如您所见,SoundCloud音乐栏UI包含恒定数量的高度不同的栏。
但是,如果您想知道如何以角度获得音频持续时间,您要做的就是制作@ViewChild()
的音频标签,然后在ngAfterViewInit()
中获得这样的音频持续时间:>
this.bars = new Array(this.audioplayer.duration);