Вам необходимо «загрузить» файл в видеоузел и дождаться загрузки метаданных файла и извлечь длительность из загруженного узла. Вот функция для получения длительности от file
. Обратите внимание, что эта функция возвращает обещание:
function getDuration(file) {
let videoNode = document.createElement("video");
let promise = new Promise(function(resolve, reject) {
videoNode.addEventListener("loadedmetadata", function() {
resolve(videoNode.duration);
});
videoNode.addEventListener("error", function() {
reject(videoNode.error.message + "(" + videoNode.error.code + ")");
});
});
const URL = window.URL || window.webkitURL;
videoNode.src = URL.createObjectURL(file);
return promise;
}
Затем вы можете вызвать эту функцию следующим образом:
getDuration(file).then((duration) => {
// duration in seconds (as float)
});
Примечание! Вам нужно переопределить цикл, чтобы дождаться завершения обещания, прежде чем объединить переменную txt
и вывести ее.