我的项目是基于 Angular 8 并使用 typescript。
我正在尝试通过id获取HTML音频元素并将其存储在变量中。 然后,我想从该元素中获取时长并将其存储在另一个变量中。
正如在一个工作的JavaScript示例中所看到的那样,这可以通过以下方式实现:
HTML
<audio id="music" preload="true">
<source src="./assets/img/hollywood.mp3">
JS
var music = document.getElementById('music');
var duration = music.duration;
现在我的TypeScript翻译是这样的:
TS
public music = <HTMLAudioElement>document.getElementById("music");
public duration = this.music.duration;
但是当我加载该页面时,出现了错误“Uncaught (in promise): TypeError: this.music is null”,我不知道为什么。
this.music.duration
中删除this
呢?我不熟悉 TS。 - Fasanipreload=true
告诉浏览器先获取音频文件。但是在执行脚本时,音频文件还没有加载完成。 - MonteCristongAfterViewInit()
中访问 DOM 元素。 - Salmin Skenderovic