Я потратил довольно много времени, пытаясь понять, почему видео встроено вот так:
<video height="256" loop autoplay muted controls id="vid">
<source type="video/mp4" src="video_file.mp4"></source>
<source type="video/ogg" src="video_file.ogg"></source>
</video>
начинает воспроизведение автоматически после загрузки страницы в FireFox, но не может выполнять автовоспроизведение в браузерах на основе Webkit. Это происходило только на некоторых случайных страницах. Причину найти пока не удалось. Я подозреваю, что какие-то незакрытые теги или обширный JS, созданный редакторами CMS.
javascript
html
google-chrome
safari
webkit
Адам Бубела
источник
источник
Ответы:
Лучшее исправление, которое я мог получить, - это добавить этот код сразу после
</video>
... не красиво, но как-то работает.
ОБНОВЛЕНИЕ В последнее время многие браузеры могут автоматически воспроизводить видео только с выключенным звуком, поэтому вам также нужно добавить
muted
атрибут в тег видео.источник
$("videoID").get(0).play();
stackoverflow.com/questions/4646998/…$("video[autoplay]").each(function(){ this.play(); });
После использования jQuery
play()
или манипуляции с DOM, как было предложено другими ответами, он все еще не работал (видео не воспроизводилось автоматически) в Chrome для Android (версия 56.0).Согласно этому сообщению на developers.google.com , начиная с Chrome 53, опция автовоспроизведения учитывается браузером, если видео отключено .
Таким образом, использование
autoplay muted
атрибутов в теге видео позволяет автоматически воспроизводить видео в браузерах Chrome, начиная с версии 53.Выдержка из приведенной выше ссылки:
источник
muted
иautoplay
свое дело. Спасибо!Бывает, что Safari и Chrome на рабочем столе не любят манипуляции с DOM вокруг тега видео. Они не будут активировать порядок воспроизведения, если установлен атрибут autoplay, даже если событие canplaythrough сработало, когда DOM вокруг тега видео изменился после начальной загрузки страницы. В основном у меня была такая же проблема, пока я не удалил jQuery .wrap () вокруг тега видео, и после этого он автоматически воспроизводился, как ожидалось.
источник
.get(0)
или просто$('#vid')[0].play()
Вы можете проверить здесь
так что просто добавь приглушенный
источник
Для меня проблема заключалась в том, что
muted
атрибут нужно было добавить вvideo
тег. То есть:источник
Chrome не позволяет автоматически воспроизводить видео со звуком, поэтому обязательно добавьте
muted
атрибут вvideo
тег, подобный этомуисточник
У меня такая же проблема с моим видео.
После поиска я нашел решение:
Если я установил для атрибутов preload значение true, видео запускается нормально.
источник
Добавление приведенного ниже кода внизу страницы сработало для меня. Не знаю, почему это работает :(
источник
источник
var video = document.querySelector('video'); video.muted = true; video.play()
Только это решение мне помогло,
<video autoplay muted ...>...</video>
не сработало ...источник
Ни один из других ответов не помог мне. Мое обходное решение состояло в том, чтобы щелкнуть само видео; хакерский (из-за необходимого тайм-аута), но он отлично работает:
источник
Недавно мы решили аналогичную проблему со встроенным видео и обнаружили, что атрибутов автовоспроизведения и отключения звука недостаточно для нашей реализации.
Мы добавили в код третий атрибут playsinline, и он устранил проблему для пользователей iOS.
Это исправление относится к видео, которые должны воспроизводиться в режиме онлайн. Из https://webkit.org/blog/6784/new-video-policies-for-ios/ :
На iPhone теперь элементы будут воспроизводиться в режиме онлайн и не будут автоматически переходить в полноэкранный режим при запуске воспроизведения. Элементы без атрибутов playsinline по-прежнему будут требовать полноэкранного режима для воспроизведения на iPhone. При выходе из полноэкранного режима с помощью жеста сжатия элементы без воспроизведения в интерактивном режиме будут продолжать воспроизводиться встроенно.
источник
Google обновил Политику автозапуска. Автовоспроизведение работает только в режиме без звука. Проверьте ссылку https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
источник
Попробуй это:
Вот как я обычно это делаю. цикл, элементы управления и автовоспроизведение не требуют значения, они являются логическими атрибутами.
источник
Это связано с тем, что теперь Chrome предотвращает автоматическое воспроизведение в видео html5, поэтому по умолчанию они не разрешают автоматическое воспроизведение. поэтому мы можем изменить эти настройки, используя настройки флага Chrome. это невозможно в обычном случае, поэтому я нашел другое решение. это работает отлично ... (добавить preload = "auto")
источник
Провел два часа, пробуя все решения, упомянутые выше.
Вот что наконец сработало для меня:
источник
На Safari Iphone, когда уровень масла низкий и iphone находится в режиме низкого энергопотребления, он не будет автоматически воспроизводиться, даже если у вас есть следующие атрибуты: автовоспроизведение, зацикливание, отключение звука, воспроизведение, встроенное в ваш HTML-тег видео.
Прогулка, я обнаружил, что работает, чтобы событие жеста пользователя запускало воспроизведение видео:
вы можете узнать больше о жестах пользователя и политиках видео для iOS на сайте webkit:
https://webkit.org/blog/6784/new-video-policies-for-ios/
источник
У меня был случай, когда это как-то было связано с порядком различных типов файлов. Попробуйте изменить его и посмотрите, поможет ли это.
источник
Я начал с воспроизведения всех видимых видео, но старые телефоны не работали хорошо. Итак, прямо сейчас я проигрываю одно видео, которое находится ближе всего к центру окна, а остальные ставлю на паузу. Ванильный JS. Вы можете выбрать, какой алгоритм вы предпочитаете.
источник
Я решил ту же проблему с,
Вы должны запускать видео после того, как страница была показана.
источник
Попробуйте заменить
autoPlay
наautoplay
.Иногда это кажется чувствительным к регистру. Очень странно, потому что это сработало, как и
autoplay
у меня, но только если я включилcontrols
источник