У меня вопрос. Я пытаюсь получить продолжительность источника.
Я хочу сделать следующее: когда страница загружается, мне нужно получить продолжительность источника, но проблема в том, что когда я хочу получить продолжительность, по-видимому, не видно, только я могу получить продолжительность, когда я нажимаю кнопку. Мне нужно знать продолжительность с начала, потому что мне нужно рассчитать позицию на видео / аудио и отправить через 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);
});
});
Это все. Спасибо.
Густаво Г.
Вам нужно будет подождать хотя бы до загрузки метаданных, чтобы узнать продолжительность видео, но, к счастью, для этого есть событие.
$( 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;
}
});
});
Других решений пока нет …