在使用data 3 API 加载 YouTube iFrame 嵌入播放器时,是否有其他人在浏览器控制台中看到此警告?
Unrecognized feature: 'autoplay'.
该错误发生在Google文件中:www-widgetapi.js:110,它似乎是JavaScript错误(这是来自第110行):
c.setAttribute("allowfullscreen",1);c.setAttribute("allow","autoplay; encrypted-media");
我认为自动播放部分应该只是:
c.setAttribute("autoplay",0);
文件在这里:https://s.ytimg.com/yts/jsbin/www-widgetapi-vflkvQ6Kw/www-widgetapi.js
该错误甚至发生在他们的开发人员演示页面上:https://developers.google.com/youtube/youtube_player_demo
人们如何向谷歌报告这些事情?
我想知道这是否:
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
您可能已经注意到,Web浏览器正朝着更严格的方向发展 自动播放策略,以改善用户体验,最小化 鼓励安装广告拦截器,并减少数据消耗 昂贵和/或受限的网络。这些更改旨在 为用户提供更好的播放控制权,并使发布商受益 具有合法用例。
Chrome 的自动播放政策很简单:
- 始终允许静音自动播放。
- 在以下情况下,允许自动播放声音:
- 用户已与域交互(单击、点击等)。
- 在桌面设备上,用户的媒体参与度指数阈值已超过,这意味着用户之前播放过带声音的视频。
- 在移动设备上,用户已将网站添加到其主屏幕。
- 顶部帧可以将自动播放权限委派给其 iframe,以允许自动播放声音。
与它有任何关系。我提出了同样的问题,文章提到自动播放的方式将从2018年1月开始(现在!🎉)将发生变化。
我已经在我的代码中删除了自动播放,而是使用了本答案中描述的技术
这样:
player = new YT.Player( videoID , {
videoId: youtubeID, // the ID of the video (mentioned above)
playerVars: {
// autoplay: 1, // start automatically
controls: 0, // don't show the controls (we can't click them anyways)
modestbranding: 1, // show smaller logo
loop: 1, // loop when complete
playlist: youtubeID // required for looping, matches the video ID
},
events : {
'onReady' : onPlayerReady
}
});
function onPlayerReady(event) {
player.mute();
player.playVideo();
}
我不确定这是否构成"答案",所以如果你不这样做,请告诉我,我会删除它。
我只是从 iframe 元素的 allow 属性中删除了autoplay;
,并在 URL 中包含 autoplay=1 获取 src 的参数:
src="https://www.youtube.com/embed/Kjf0PdhFqMw?autoplay=1&enablejsapi=1&modestbranding=1&rel=0&loop=1&controls=0&showinfo=0&mute=1&wmode=transparent"
自动播放有效,并且该错误不再发生。