ОБНОВЛЕНИЕ: Хорошо, хотя я точно не решил эту проблему, но я нашел способ обойти эту самую большую проблему ... пользовательский опыт.
Сначала видео не начинает загружаться, пока зритель не нажмет кнопку воспроизведения, поэтому я предполагаю, что информация о продолжительности была недоступна для извлечения (я не знаю, как решить эту конкретную проблему ... хотя я предполагаю, что для этого потребуется просто загрузить метаданные видео отдельно от видео, но я даже не знаю, возможно ли это).
Чтобы обойти факт отсутствия данных о продолжительности, я решил полностью скрыть информацию о продолжительности (и фактически весь элемент управления), пока вы не нажмете на игру.
Я знаю ... это обман. Но сейчас это делает меня счастливым:)
Тем не менее ... если кто-нибудь знает, как загрузить метаданные видео отдельно от видеофайла ... пожалуйста, поделитесь. Я думаю, что это должно полностью решить эту проблему.
Я работаю над созданием видеоплеера HTML5 с пользовательским интерфейсом, но у меня возникают некоторые проблемы с отображением информации о продолжительности видео.
Мой HTML очень прост (см. Ниже)
<video id="video" poster="image.jpg" controls>
<source src="video_path.mp4" type="video/mp4" />
<source src="video_path.ogv" type="video/ogg" />
</video>
<ul class="controls">
<li class="time"><p><span id="timer">0</span> of <span id="duration">0</span></p></li>
</ul>
И javascript, который я использую, чтобы получить и вставить продолжительность
var duration = $('#duration').get(0);
var vid_duration = Math.round(video.duration);
duration.firstChild.nodeValue = vid_duration;
Проблема в том, что ничего не происходит. Я знаю, что видеофайл содержит данные о продолжительности, потому что, если я просто использую элементы управления по умолчанию, он отображается нормально.
Но по-настоящему странно, если я добавлю в свой код alert (duration), например,
alert(duration);
var vid_duration = Math.round(video.duration);
duration.firstChild.nodeValue = vid_duration;
тогда работает нормально (за исключением раздражающего предупреждения, которое появляется). Есть идеи, что здесь происходит или как я могу это исправить?