2017-02-04 128 views
2

我试图从我列在表格中的视频中获得视频持续时间。我试图使用@ViewChildren访问它,并成功,直到一部分。我得到的查询列表,但当我尝试访问_results它返回未定义。后来我知道queryList由于某种原因是私人的。任何帮助将不胜感激Angular 2,视频持续时间访问。

这里是我的代码:

<video id="video1" #video> 
<source src = "{{videos.link}}" type="video/mp4"> 
</video> 
@ViewChildren('video') video; 
ngOnInit: { 
Observable.timer(1000,1000).subscribe(() => { 
if(this.video && !this.isVideoLogged){ 
console.log(this.video); 
this.isVideoLogged = true; 
} 
} 

回答

3

可以使用loadedmetadata事件:

Plunker example

<video width="480" controls #video (loadedmetadata)="onMetadata($event, video)" 
onMetadata(e, video) { 
    console.log('metadata: ', e); 
    console.log('duration: ', this.duration = video.duration); 
    } 
+0

如何处理时间ACCES不止一个视频是视图用ngFor编辑。因为我一直都在登录 –

+0

不确定你的意思。你可以更新蹦床来演示吗? –

+0

我不能因为即时通讯调用私人API,我会尽力在这里解释它。所以我有一个我从API获得的视频列表,并将其列为ngFor当我调用(loadedmetada)函数时,它会无限次地调用该函数。我如何才能称它只是一次获得持续时间,而不是停止呼叫。 –