HTML5 тег видео в Chrome - почему currentTime игнорируется при загрузке видео с моего веб-сервера? - PullRequest
10 голосов
/ 01 января 2011

Я хочу иметь возможность воспроизводить видео в определенное время, используя тег HTML5 video (и в настоящее время нужно беспокоиться только о Chrome).Это возможно путем установки свойства currentTime элемента видео.Это отлично работает в Chrome с видео, полученным с html5rocks.com, но игнорируется, когда тот же файл загружается с моего собственного локального веб-сервера.

Использование примера кода из http://playground.html5rocks.com/#video_tag, Я пришел кследующий HTML-код:

<!DOCTYPE html>
<html>
<body>
<video id="video1" width="320" height="240" volume=".7" controls preload=true autobuffer>
    <source src="http://playground.html5rocks.com/samples/html5_misc/chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/>
    </video>
<input type=button onclick="play()" value="play">
<input type=button onclick="setTime()" value="setTime">
<input type=button onclick="pause()" value="pause">
<script>
    var play=function() {
        document.getElementById("video1").play();
    }
    var setTime=function() {
        document.getElementById("video1").currentTime=2;
    }
    var pause=function() {
        document.getElementById("video1").pause();
    }
</script>
</body>
</html>

Использование Chrome, если вы

  1. Подождите немного, пока видео загрузится (пока индикатор выполнения не наберет около 10%)
  2. Нажмите setTime - вы должны заметить скачок времени до 2 секунд
  3. нажать кнопку воспроизведения

... видео начнется через 2 секунды.

Но , если я загружаю файл webm в исходном src на свой локальный веб-сервер и изменяю src на локальный:

<source src="chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/>

... тогда настройка currentTime полностью игнорируется.В консоли инструментов разработчика не отображаются ошибки.

Теперь мой веб-сервер обслуживает это с типом mime "video / webm", но он будет обслуживаться как любой старый файл - без потоковой передачи.

Нужен ли веб-сервер, который транслируется определенным образом?Что еще может быть здесь ошибочным?

Примечание. Веб-сервер является проприетарной платформой и не будет иметь каких-либо точных настроек или элементов управления, которые можно ожидать от Tomcat или другого широко используемого веб-сервера,хотя могут быть и другие способы достижения того же эффекта.

1 Ответ

14 голосов
/ 24 марта 2011

Убедитесь, что ваш веб-сервер способен обслуживать документ с использованием диапазонов байтов. Google Chrome требует, чтобы это работало. Без этого поиск будет отключен, и настройка currentTime не будет иметь никакого эффекта.

Чтобы проверить, если ваш веб-сервер делает это, используйте следующую команду:

curl --dump-header - -r0-0 http://theurl

Статус ответа должен иметь значение 206 Partial Content, и вы должны получать только первый байт ресурса вместо всего ресурса.

-Phil

...