Запускать видео HTML5 в определенной позиции при загрузке?

Мне нужно видео HTML5, чтобы начать в определенный момент. Скажем, время 50 секунд.

Я пытался, но это не работает, как ожидалось. я что-то не так делаю?

Вот код:

   <video id="vid1" width="640" height="360">
       <source src="file.webm" type="video/webm" /> 
       Your browser does not support the video tag.
   </video>
   <script>
       document.getElementById('vid1').currentTime = 50;
   </script> 

Когда страница загружается, она просто начинает играть с начала. Однако, если я вызываю это во время воспроизведения, как через некоторое время, он работает нормально. Есть ли что-то, что я пропускаю?

Ответы

Ответ 1

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

document.getElementById('vid1').addEventListener('loadedmetadata', function() {
  this.currentTime = 50;
}, false);

Ответ 2

Вы можете напрямую связать с URI медиафайлов, просто измените имя файла на file.webm # t = 50

Вот пример

Это довольно круто, вы можете делать всевозможные вещи. Но я не знаю текущее состояние поддержки браузера.

Ответ 3

БЕЗ ИСПОЛЬЗОВАНИЯ JAVASCRIPT

Просто добавьте #t=[(start_time), (end_time)] в конец вашего медиа-URL. Единственное препятствие (если вы хотите это увидеть) - вам нужно знать, как долго ваше видео будет указывать время окончания. Пример:

<video>
    <source src="splash.mp4#t=10,20" type="video/mp4">
</video>

Примечания: Не поддерживается в IE

Ответ 4

настроить время начала и окончания видео при использовании тега видео в html5;

http://www.yoursite.com/yourfolder/yourfile.mp4#t=5,15

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

Ответ 5

Использование фрагмента #t=10,20 работало для меня.

Ответ 6

В Safari Mac для источника HLS мне нужно было использовать событие loadeddata вместо события метаданных.