2017-02-20 4 views
0

アップロードする前に動画の再生時間を取得したい。どのようにangular2でこれを行うには? 私の入力コードがあります:angular2アップロード前の動画の長さを取得する

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

私はjqueryのを使用して、いくつかの同等の例を見つけることが、私はangualr2で使用する見当がつかない。 jQueryを使わずにangular2を使うだけで可能ですか?

答えて

1

こちらの回答はhttps://stackoverflow.com/a/29285597/7270500で、javascriptを使用してください。

ところで、getVideoInforはvideo.valueを参照しています。 これは$ event.target.valueを使って簡単にアクセスすることができ、コンポーネントのコードで必要でない限り#video参照を保存することができます。

+0

私はそれを見つけました。それは素晴らしいです!私はvideo.durationの値を私が望むものにしますが、私はcomponent.tsの値を使用しなければなりません。 video.onloadedmetadata()からvideo.durationの値をコンポーネントに出力する方法私は多くの方法を試みますが、それにアクセスすることはできません。ありがとうございました:) – PaulHuang

+0

コンポーネントクラスにプロパティを追加し、video.onloadedmetada()で割り当てます。あなたのテンプレートでは、{{}}構文を使ってその値を読んでください。例については、[link](https://angular.io/docs/ts/latest/guide/displaying-data.html)を参照してください。 – Arinaud

+0

あなたは私の人生を救います。それであなたは辛抱強く私に答えてくれるのでとてもうれしいです:) – PaulHuang

0

申し訳ありませんが、返信された投稿にコメントしたかったのですが、スタックしません。

@PaulHuang回答をどのように実装したかを確認することは可能でしょうか?私は私の角2に答えを修正しようとしていましたが、私は過去のことができないいくつかのエラーを取得しています。

+0

ここにあります、 'getDuration(files){ var myVideos = []; window.URL = window.URL; myVideos.push(files [0]); var a = []; var video = document.createElement( 'video'); video.preload = 'metadata'; video.onloadedmetadata = function(videoDuration){ window.URL.revokeObjectURL(this.src) a.push(video.duration); }; video.src = URL.createObjectURL(files [0]); this.videoDuration = a; } しかし、私はそれが最良の方法だとは思わない。あなたが別のものを見つけたら、私に分けてください。 – PaulHuang

+0

これはありがとうございます。 THANKS – Robbie

関連する問題