Rails error: Autoplay is only working sometimes for video_tag
Rails error: Autoplay is only working sometimes for video_tag
我正在使用 Carrierwave 上传视频文件,我的 video_tag
的 autoplay
和 loop
都设置为 true
。视频最初上传后会自动播放,但在我刷新页面后只显示视频的第一帧。
video_tag 的来源:
video_tag post.video_url.to_s, autoplay: true, loop: true, class: :standard_post_video
我也在使用 Nginx 和 Unicorn。谢谢!
将 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
只需添加
muted: 'muted'
在video_tag
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 的自动播放策略很简单:
- 始终允许静音自动播放。
如果满足以下条件,则允许有声自动播放:
- 用户与域进行了交互(点击、点击等)。
- 在桌面设备上,已超过用户的媒体参与指数阈值,这意味着
- 用户之前播放过有声视频。
在移动设备上,用户已[将网站添加到他们的主屏幕]。
顶级框架可以将自动播放权限委托给它们的 iframe 以允许自动播放声音。
我正在使用 Carrierwave 上传视频文件,我的 video_tag
的 autoplay
和 loop
都设置为 true
。视频最初上传后会自动播放,但在我刷新页面后只显示视频的第一帧。
video_tag 的来源:
video_tag post.video_url.to_s, autoplay: true, loop: true, class: :standard_post_video
我也在使用 Nginx 和 Unicorn。谢谢!
将 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
只需添加
muted: 'muted'
在video_tag
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 的自动播放策略很简单:
- 始终允许静音自动播放。
如果满足以下条件,则允许有声自动播放:
- 用户与域进行了交互(点击、点击等)。
- 在桌面设备上,已超过用户的媒体参与指数阈值,这意味着
- 用户之前播放过有声视频。
在移动设备上,用户已[将网站添加到他们的主屏幕]。
顶级框架可以将自动播放权限委托给它们的 iframe 以允许自动播放声音。