使用数据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
人们如何向Google报告这些内容?
答案 0 :(得分:11)
我想知道是否:
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
您可能已经注意到,网络浏览器正朝着更严格的方向发展 自动播放策略,以改善用户体验,最小化 激励安装广告拦截器,并减少数据消耗 昂贵和/或受限制的网络。这些更改旨在 更好地控制用户的播放并使发布者受益 合法使用案例。
Chrome的自动播放政策很简单:
- 始终允许静音自动播放。
- 如果符合以下条件,则允许声音自动播放:
- 用户已与域进行了互动(点击,点击等)。
- 在桌面上,用户的媒体参与度指数阈值已超过,这意味着用户之前已播放带有声音的视频。
- 在移动设备上,用户已将网站添加到他或她的主屏幕。
- 热门框架可以将自动播放权限委托给他们的iframe,以允许自动播放声音。
与此有关。我想出了同样的问题,文章提到自动播放从2018年1月开始的方式(现在!)将 更改 。
我在代码中删除了自动播放,而是使用了this answer中描述的技术
像这样: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();
}
我不确定这是否构成一个答案'如果你没有,请告诉我,我会将其删除。
答案 1 :(得分:4)
我只是从我的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"
自动播放工作,不再发生错误。