2017-02-20 1 views
0

Ich möchte die Videodauer vor dem Upload erhalten. Wie geht das in angular2? Es ist mein Eingangscode:angular2 Videodauer vor dem Upload erhalten

<input type="file" class="form-control" ng2FileSelect [uploader]="uploader" accept="video/*" #video (change)="getVideoInfor(video.value) "/>

finde ich etwas vergleichbares Beispiel Jquery, aber ich habe keine Ahnung, in angualr2 zu verwenden. Ist es möglich, nur angular2 ohne jquery zu verwenden?

Antwort

1

Hier finden Sie die Antwort https://stackoverflow.com/a/29285597/7270500 mit Javascript.

Übrigens bezieht sich getVideoInfor auf video.value. Dies kann einfach mit $ event.target.value aufgerufen werden, so dass Sie die #Video-Referenz speichern können, sofern sie nicht im Code Ihrer Komponente benötigt wird.

+0

Ich habe es gerade gefunden, und es ist erstaunlich! Ich bekomme den video.duration Wert, was ich will, aber ich muss den Wert in meinem component.ts verwenden. Wie man den Wert von video.duration von video.onloadedmetadata() zur Komponente ausgibt. Ich versuche viele Möglichkeiten, kann aber nicht darauf zugreifen. Vielen Dank für Ihre Hilfe :) – PaulHuang

+0

Fügen Sie Ihrer Komponentenklasse eine Eigenschaft hinzu und weisen Sie sie in video.onloadedmetada() zu. Lesen Sie diesen Wert in Ihrer Vorlage mit der {{}} Syntax. Beispiele finden Sie unter [link] (https://angular.io/docs/ts/latest/guide/displaying-data.html) – Arinaud

+0

Sie sparen mein Leben, und es ist so froh, dass Sie mich geduldig antworten :) – PaulHuang

0

Entschuldigung wollte mich auf den beantworteten Beitrag kommentieren, aber Stack wird mich nicht lassen.

@PaulHuang wäre es möglich zu sehen, wie Sie die Antwort implementiert haben? Ich habe versucht, die Antwort in meinem Winkel 2 zu ändern, aber einige Fehler zu bekommen, die ich nicht vorbeikommen kann.

+0

Hier sind Sie , 'getDuration (Dateien) { var myVideos = []; window.URL = Fenster.URL; myVideos.push (Dateien [0]); var a = []; var video = document.createElement ('Video'); video.preload = 'Metadaten'; video.onloadedmetadata = Funktion (videoDuration) { window.URL.revokeObjectURL (this.src) a.push (video.duration); }; video.src = URL.createObjectURL (Dateien [0]); this.videoDuration = a; } ' aber ich denke nicht, dass es der beste Weg ist. Wenn Sie ein anderes besseres finden, teilen Sie es bitte mit meXD – PaulHuang

+0

Forgot, um Dank dafür zu sagen. Vielen Dank – Robbie

Verwandte Themen