2017-02-20 1 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()에 할당합니다. 템플릿에 {{}} 구문을 사용하여 값을 읽으십시오. 예제는 – Arinaud

+0

의 [link] (https://angular.io/docs/ts/latest/guide/displaying-data.html)를 참조하십시오. 내 목숨을 구하십시오. 당신이 저를 참을성있게 응답하게되어 너무 기쁩니다. – PaulHuang

0

죄송합니다. 답변 게시물에 댓글을 쓰고 싶지만 스택을 허용하지 않습니다.

@PaulHuang 답변을 어떻게 구현했는지 볼 수 있습니까? 나는 나의 앵귤러 2로 대답을 수정하려고 노력했지만 과거에는 얻을 수없는 오류가 발생했다.

+0

여기 있습니다. , 'getDuration (files) { var myVideos = []; window.URL = window.URL; myVideos.push (파일 [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; } ' 하지만 가장 좋은 방법이라고 생각하지 않습니다. 당신이 더 좋은 것을 찾으면, 나에게 공유하십시오 XXD – PaulHuang

+0

이것에 대한 감사의 말을 잊어 버렸습니다. 감사 – Robbie

관련 문제