YouTube自动播放无法在Chrome中使用

时间:2018-05-07 14:54:20

标签: javascript google-chrome youtube autoplay

有一段时间我一直在使用这个脚本,视频自动播放全屏。现在突然,视频无法在Chrome中自动播放。但是在Firefox和Edge中它仍然有效。

那么谷歌可能改变了设置?有谁知道如何解决这个问题,拜托? 您可以在此处看到实时示例:www.brunomazereel.com

<script src="http://www.youtube.com/player_api"></script>
<script type="text/javascript">
var player;
function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
    playerVars: {
        'autoplay': 1,
        'controls': 0,
        'autohide': 1,
        'wmode': 'opaque',
        'showinfo': 0,
        'loop': 1,
        'rel': 0,
        'playlist': 'rh5QiehIlVA,Bl63bdR-Ko0,'
        },
    videoId: 'u-cjliof1xk',
    events: {
        'onReady': onPlayerReady
    }
});
}
function onPlayerReady(event) {
event.target();
$('#text').fadeIn(400);
}
$(window).scroll(function() {
var hT = $('.m-video').height(),
   wS = $(this).scrollTop();
if (wS > hT) {
  player.pauseVideo();
}
else {
  player.playVideo();
}
});
</script>

4 个答案:

答案 0 :(得分:21)

(一)从评论讨论中获得的可能解决方案将静音视频如果声音在您的情况下不重要(如果是,我将离开回答,因为它可以帮助其他人)

这显然是启用自动播放始终的唯一方法。来自文章:

  

“始终允许静音自动播放。”

来源:Google changelog

只需添加你的playerVars:

mute : 1

Source for the muted video

答案 1 :(得分:7)

Google Chrome删除了自动播放功能。见下文:

https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

答案 2 :(得分:3)

您应将allow="autoplay"放在嵌入的iframe元素上

<!-- Autoplay is allowed. -->
<iframe src="https://cross-origin.com/myvideo.html" allow="autoplay">

<!-- Autoplay and Fullscreen are allowed. -->
<iframe src="https://cross-origin.com/myvideo.html" allow="autoplay; fullscreen">

Chrome浏览器的autoplay policies

  
      
  • 最高帧可以delegate autoplay permission移至其iframe,以允许autoplay 有声音
  •   始终允许
  • 静音自动播放。
  •   如果出现以下情况,则允许
  • 有声自动播放:      
        
    • 用户已与域进行了交互(单击,点击等)。
    •   
    • 在桌面上,已经超过了用户的Media Engagement Index阈值,这意味着该用户以前曾播放有声视频。
    •   
    • 在移动设备上,用户已将该网站添加到其主屏幕。
    •   
  •   

答案 3 :(得分:0)

对我来说,这个解决方案是可行的:

DataRecord[T]

即使使用所有有效的autoplay html属性,它也无法为我播放,但是上面的代码有所帮助。