2017-08-28 60 views
2

HTML我怎样才能得到HTML5视频持续时间页面加载角4?

<video #v > 
    <source src="{{video.videoUrl}}" type="video/mp4" /> 
</video> 

<button (click)="getDuration(v)"> 
    Get Duration 
</button> 

<input type="range" step="0.1" min="0" 
    max="getDuration(v)"> 

.TS

video = { 
    videoUrl :"myvideo.mp4" 
    length: null, 
} 

getDuration(v){ 
    let dur = v.duration; 
    dur = dur.toFixed(); 

    this.video.length = dur; 
    return dur; 
} 

我可以得到视频的网址上按一下按钮,但我不能在页面加载得到。

如何在页面加载视频时获取视频持续时间?

加:我试着打电话给getDuration(v)功能ngOnInit()但得到的错误,因为getDuration(v)有参数。

谢谢!

回答

4
  1. 您需要等到元素被加载。使用ngAfterViewInit()生命周期钩子代替ngOnInit()

  2. 使用@ViewChild装饰器在打字稿逻辑中使用模板中的元素引用。

在你的情况下,使用ViewChild:

@ViewChild('v') v; 

ngAfterViewInit() { 
console.log(this.v); 
} 
+0

谢谢您的回答。但我不明白如何使用ViewChild的东西?你能更详细地了解如何使用它吗? – Norx

+0

查看更新的答案 – TheUnreal

+0

顺便说一下,它与** ElementRef **一起工作。只想说。 '@ViewChild('v')v:ElementRef;''this.getDuration(this.v.nativeElement)' – Norx

相关问题