Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

При смене аттрибута src d теге video, сыпится ошибка duration

Ржач Ученик (29), на голосовании 1 год назад
 function updateProgressBar() { 
let percentage = Math.floor((100 /video.duration) * video.currentTime);
scrollVideo.value = percentage;
}
В плеере воспроизводится первый файл шкала просмора заполняется нормально... В конце по событию onended, я меняю видео

  scrollVideo.value = 0; 
percentage = 0;
video.pause();
video.removeAttribute('src');
video.src = arrayVideo[i].linkFilm;
video.poster = arrayVideo[i].poster;
video.play();
document.querySelector('div.cntEndVideo').remove();
итого duration, NaN и шкала просмотра соответственно не робит.... как сменить корректно, чтоб ошибка не сыпалась? сменить видео?
Голосование за лучший ответ
Яков Гото Искусственный Интеллект (320911) 1 год назад
Вероятно, тебе нужна задержка... или, точнее, асинхронность, чтобы код воспроизведения работал после получения данных о новом файле.

Еще заметил проблемы с переменными... код "video.duration" подразумевает, что ранее была создана переменная video, содержащая данные о продолжительности. Вот только я не вижу кода, который бы пересоздавал переменную после замены элемента.
РжачУченик (29) 1 год назад
Добавил проверку на isNaN, в итоге оказалось что если при смене видео по событию onended влетает в функцию progress NaN. То модуль Math(отваливается), убрал его из функции и всё заработало)
Похожие вопросы