Ошибка Rails: автозапуск иногда работает только для video_tag - PullRequest
0 голосов
/ 04 апреля 2019

Я использую Carrierwave для загрузки видеофайлов, и для autoplay и loop установлено значение true для моего video_tag.Видео воспроизводится автоматически после первоначальной загрузки, но отображается только первый кадр видео после обновления страницы.

Источник тега video_tag:

video_tag post.video_url.to_s, autoplay: true, loop: true, class: :standard_post_video

https://github.com/ethanwilkins/simplr/blob/2c07884d153192566ded30bd020c06237747f401/app/views/posts/_card.html.erb#L87

Я также использую Nginx и Unicorn.Спасибо!

Ответы [ 2 ]

1 голос
/ 04 апреля 2019

Просто добавьте

приглушен: «приглушен»

в теге видео

video_tag post.video_url.to_s, autoplay: true, loop: true, muted: 'muted', class: :standard_post_video

См. Документы: https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

Правила автозапуска Chrome просты:

  • Приглушенный автовоспроизведение всегда разрешено.
  • Автозапуск со звуком разрешен, если:

    • Пользователь взаимодействовал с доменом (нажмите, коснитесь и т. Д.).
    • На рабочем столе было превышено пороговое значение индекса вовлеченности пользователей, что означает
    • пользователь ранее воспроизводил видео со звуком.
    • На мобильном телефоне пользователь [добавил сайт на главный экран].

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

0 голосов
/ 04 апреля 2019

Добавление muted: "muted" к моему video_tag позволило мне проверить, воспроизводится ли видео, а затем вызвать play(), если необходимо. Это решило мою проблему:

    <%= video_tag post.video_url.to_s, autoplay: true, loop: true, muted: "muted", class: :standard_post_video, id: "standard_post_video_#{post.id}" %>
    <script>
      var video = $('#video').get(0);
      if (video.paused) {
        video.play();
      }
    </script>

Фиксация: https://github.com/ethanwilkins/simplr/commit/4eea13ee610b4744f555cfba3696da6ac492b622

...