Несоответствующая длительность HTMLMediaElement
У меня возникла проблема с моим видеопроигрывателем, когда продолжительность видео, возвращенная из HTMLMediaElement.duration, не соответствует. Я настроил следующий слушатель, чтобы помочь проиллюстрировать:
video.addEventListener('timeupdate', function(e) {
console.log('Duration: ' + video.duration);
if ( video.currentTime === video.duration ) {
console.log( video.currentTime + ' === ' + video.duration )
}
});
Когда я ищу весь путь до конца видео, это событие возвращает другое (более точное) значение. Ниже я приведу пример моих журналов:
Duration: NaN
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
Duration: 135.8357
...
..Я стремлюсь к концу видео..
...
Duration: 135.8357
135.8357 === 135.8357
Duration: 135.952833
Я ищу весь путь до конца видео, текущее время равно продолжительности, а затем продолжительность обновляется до другого времени. Поиск до конца видео не приводит к ended
событие (если только видео не возобновится и не достигнет новой конечной точки 135.952833
).
Есть ли у кого-нибудь понимание этой проблемы или мысли о возможном решении?
0 ответов
У меня была точно такая же проблема, но с аудиоэлементом. При поиске до конечной точки аудиоdurationchange
событие постоянно запускалось, audio.duration
меняется в течение нескольких секунд.
Оказалось, проблема с источником звука. Вот сценарий проблемного звука: https://jsfiddle.net/jessuni/kxcmye8z/42/ Вы пробовали другой источник видео и воспроизвели проблему?