最近发现在eaas以及后来的可视化项目中,升级chrome到71版本后,都出现白屏的问题,前后端log也非常正常,webrtc-internals 显示server数据也都没问题。
各种debug都没效果后,我把video元素在console里手工全屏,然后发现原来video一直没有播放,点击播放后一切就正常了。
google一番后发现早在2017.09 chrome就计划更改video自动播放的政策了。新开窗口(不同domain)里video不能自动播放,除非muted
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes?refresh=1#example_scenarios
终于在2018.11升级到71版本时正式付诸实施,话说这个更改可谓从开始提出就骂声一片,但google依然我行我素。
https://developers.google.com/web/updates/2018/11/web-audio-autoplay?refresh=1
文档中有句话是说如果新开窗口和原窗口属于同一domain,自动播放是没有影响的。
然而测试发现在http协议下,即使是同一domain, autoplay 也必须是muted才可以。
btw, 动态生成的video元素插入dom后,直接用setAttribute设置muted, autoplay是没效果的,https://stackoverflow.com/questions/54246807/video-will-not-autoplay-on-chrome-when-it-is-inserted-into-the-dom。
网友评论