2017-02-04 124 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)函數時,它會無限次地調用該函數。我如何才能稱它只是一次獲得持續時間,而不是停止呼叫。 –

相關問題