javascript — получить продолжительность видео jQuery

У меня вопрос. Я пытаюсь получить продолжительность источника.

Я хочу сделать следующее: когда страница загружается, мне нужно получить продолжительность источника, но проблема в том, что когда я хочу получить продолжительность, по-видимому, не видно, только я могу получить продолжительность, когда я нажимаю кнопку. Мне нужно знать продолжительность с начала, потому что мне нужно рассчитать позицию на видео / аудио и отправить через currentTime.

Я пытаюсь сделать «предупреждение», но результат «NaN».

Это мой код на самом деле:

$( document ).ready(function() {
var asset = $('#asset')[0]; // Obtiene el Objeto
var tipo = $('#asset').attr('class'); // Video, Audio, PDF
var duracion = asset.duration;
var porcentaje = $('#porcentaje').attr('data-percent');
var tiempo = (porcentaje*duracion)/100;
asset.currentTime = tiempo;
alert(duracion); // NaN

$("#guardar").click(function() {
var avance = asset.currentTime;
if(tipo == 'video' || tipo == 'audio'){
porcentaje = parseInt((avance*100)/duracion);
}
else if(tipo == 'pdf'){
porcentaje = 100;
}
alert(porcentaje);
});
});

Это все. Спасибо.

Густаво Г.

1

Решение

Вам нужно будет подождать хотя бы до загрузки метаданных, чтобы узнать продолжительность видео, но, к счастью, для этого есть событие.

$( document ).ready(function() {
var asset      = $('#asset')[0]; // Obtiene el Objeto
var tipo       = $('#asset').attr('class'); // Video, Audio, PDF
var duracion   = 0;
var tiempo     = 0;
var porcentaje = $('#porcentaje').data('percent');

asset.addEventListener('loadedmetadata', function() {
duracion = asset.duration;
tiempo   = (porcentaje*duracion)/100;

asset.currentTime = tiempo;
});

$("#guardar").click(function() {
var avance = asset.currentTime;
if(tipo == 'video' || tipo == 'audio'){
porcentaje = parseInt((avance*100)/duracion);
} else if(tipo == 'pdf') {
porcentaje = 100;
}
});
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]