Как с JS узнать продолжительность видео-файла mp4?

Как с помощью JS узнать сколько секунд (продолжительность) видео-файла .mp4 ?
Написал яваскрипт, но в результат videodyrat он выдаёт null хотя в foreachdata указан путь до видеофайла:

window.URL = window.URL || window.webkitURL;
    function getDuration(control) {
        var video = foreachdata;
        video.preload = 'metadata';
        video.onloadedmetadata = function () {
            window.URL.revokeObjectURL(video.src);
           var videodyrat = video.duration;
        }
        video.src = URL.createObjectURL(control.files[0]);
    }
  • Вопрос задан
  • 815 просмотров
Решения вопроса 1
@grek_cheburek
Программист самоучка
video.duration
Однако, это нужно завернуть в функцию и дергать чем-то другим. Я дергал таймером.
Тогда выводит длительность, а иначе будет NaN
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Okujava-script
@Okujava-script
Веб-программист с абсолютным слухом и композитор
Если пытаться прочитать продолжительность видеофайла сразу после объявления элемента видео, то браузер не успевает прочитать из файла эту информацию. Есть 4 способа это поправить. Можно обернуть функциями onloadeddata или onloadedmetadata:
video.onloadeddata = () => alert(video.duration);
В Вашем случае, когда нужно дёргать чем-то другим, это можно сделать кнопкой:
<button onclick='console.log(video.duration)'> жми </button>
Ответ написан
Комментировать
Alex_mos
@Alex_mos
Google всему голова
А вот это не подойдёт?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы