Как отключить автоматическое создание изображений на видео теге? - PullRequest
1 голос
/ 17 июня 2010

Я использую атрибут 'poster' в теге видео, и похоже, что он работает, по крайней мере, в браузерах webkit, так как он загружает изображение плаката, а затем, после загрузки достаточного количества видео, заменяет этот плакат наавтоматически сгенерированный постер из самого видеофайла.

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

Ответы [ 3 ]

1 голос
/ 18 июня 2010

Это способ, которым браузеры webkit решили реализовать спецификацию (как указано выше).Я согласен с вами, что это не очень интуитивно понятно, и я сам предпочел бы сохранить изображение постера, пока пользователь не нажмет кнопку воспроизведения.Я предлагаю вам отправить отчет об ошибке (или запрос функции) в webkit для этого https://bugs.webkit.org/.

1 голос
/ 19 июня 2010

Нам удалось обойти это в JW Player для HTML5 . Самый простой способ заключается в следующем:

  • Если установлено свойство src , сбросьте его и сохраните местоположение.
  • Добавить обработчик кликов к тегу . Когда он щелкнет, переустановите свойство src.

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

Также стоит отметить, что вы ничего не можете поместить поверх тега в мобильном Safari. Способ обойти это:

  • Установить отображение CSS : нет
  • Добавьте еще один
    в том же месте, с теми же размерами, что и элемент , с фоновым изображением CSS, которое совпадает с изображением проблем.
  • Добавить обработчик кликов к новому
    . При нажатии новой
    скрыть новую
    и показать тег видео.
  • Когда воспроизведение видео завершится, скройте и покажите новый
    .

Надеюсь, это поможет!

Best

Zach

Разработчик, LongTail Video

0 голосов
/ 18 июня 2010

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

"Когда элемент видео приостановлен и текущая позиция воспроизведения является первым кадром видеоэлемент представляет либо кадр видео, соответствующий текущей позиции воспроизведения, либо кадр постера, по усмотрению агента пользователя. "- http://www.w3.org/TR/html5/video.html#attr-video-poster

...