无法识别的功能:YouTube嵌入式播放器出现“自动播放”错误

时间:2018-01-14 05:41:30

标签: javascript youtube-api

使用数据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报告这些内容?

2 个答案:

答案 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"

自动播放工作,不再发生错误。