Chrome 自动播放政策 - Chrome 76
Posted
技术标签:
【中文标题】Chrome 自动播放政策 - Chrome 76【英文标题】:Chrome Autoplay Policy - Chrome 76 【发布时间】:2019-12-18 17:13:58 【问题描述】:我正在构建一个在 Chrome 上运行的信息亭媒体,可以播放视频和音频。我知道默认情况下,chrome 只允许自动播放带有静音道具的视频。
我知道我可以通过 chrome://flags/#autoplay-policy 在 chrome 中启用标志来覆盖它
我刚刚更新到 Chrome 76,这个标志似乎消失了,视频的自动播放似乎不再起作用了!
知道如何克服这个问题吗?
[Chrome 76.0.3809.100(官方构建)(64 位)] Mac OS Mojave
【问题讨论】:
【参考方案1】:我最近刚刚与 Google 的一些开发人员讨论了这个问题。我提交了一个错误。他们非常有帮助。
即使在 https://chromium-review.googlesource.com/c/chromium/src/+/1593800 中删除了自动播放策略 chrome 标志,您仍然可以从命令行使用特定的自动播放策略运行 Chrome。
不需要任何用户手势的自动播放策略。
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --autoplay-policy=no-user-gesture-required
他们说这个命令会保留,所以这很好,但更好的是 Chrome 允许您始终通过明确允许网站发出声音“站点设置 > 声音”来启用自动播放
祝你好运。
【讨论】:
完美!这解决了我的问题。感谢分享。 那么这个no-user-gesture-required
选项有什么作用?它总是允许自动播放?当这个#autoplay-policy
仍然可用时,禁用自动播放的设置值为“需要文档用户激活”。它的等效命令行选项是什么? (在我的测试中,使用--autoplay-policy=no-user-gesture-required
不会阻止视频自动播放)
@webp "no-user-gesture-required" 表示用户无需与文档交互即可自动开始播放视频或音频源。
@code_secret 那么我应该使用什么值来防止视频自动播放?
@webp 我不太明白你的意思。这篇文章说明了在信息亭模式下自动播放的问题。如果您不希望您的视频自动播放...您是否尝试添加标签 autostart="false" ?【参考方案2】:
您可以使用命令行代码在 kiosk 模式下执行 chrome,无需用户手势:
google-chrome-stable --kiosk http://google.com/ --new-window --start-maximized --incognito --autoplay-policy=no-user-gesture-required --disable-features=PreloadMediaEngagementData,AutoplayIgnoreWebAudio,MediaEngagementBypassAutoplayPolicies &
【讨论】:
【参考方案3】:根据 Chrome 的新政策: Chrome已经阻止了任何声音,我也遇到了这个问题。 我只是将此触发器单击添加到我的脚本页面,它确实可以正常工作:
$('body).trigger('click');
【讨论】:
在 Chrome 版本 87.0.4280.141 中试过,不适用于纯 js 或 jQuery。 你应该试试 Raw javascript。 正如我在评论中提到的,我确实尝试过。简单地使用document.body.click()
也不起作用。此类由 JS 触发的事件不被视为“受信任”,因此不算作用户与页面的交互。
在您的play()
代码顶部尝试此代码$('body').trigger('click');
。【参考方案4】:
我只是在我的页面中添加一个 div 并在加载页面上调用点击触发器! 它工作正常!
<div id="test"></div>
<script>
$(function()
$("#test").trigger("click");
)
</script>
【讨论】:
你确定?我无法用 document.getElementById("test").click() 复制 jQuery 有什么不同? 这里一样.. 用普通的 js 做不到以上是关于Chrome 自动播放政策 - Chrome 76的主要内容,如果未能解决你的问题,请参考以下文章
Chrome 新动作:取消 HTTPS 页面安全标记;暂时恢复网页自动播放功能
用于数字标牌的 Chrome 中的 HTML5 视频自动播放
为啥我的 YouTube 链接没有在 Chrome 的 iframe 中自动播放? [复制]
JS自动播放音频 无效chrome设置 (Uncaught (in promise) DOMException: play() failed because the user didn't i