有一段时间我一直在使用这个脚本,视频自动播放全屏。现在突然,视频无法在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>
(一)从评论讨论中得到的可能解决方案将使视频静音,如果声音在您的情况下不重要(如果是,我将留下答案,因为它可以帮助其他人)。
这显然是始终启用自动播放的唯一方法。来自文章:
“总是允许静音自动播放。”
资料来源:Google changelog
只需添加您的playerVars:
mute : 1
Google Chrome删除了自动播放功能。见下文:
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes
你应该把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
s允许autoplay
有声。- 始终允许静音自动播放。
- 如果符合以下条件,则允许自动播放声音 用户已与域进行了互动(点击,点击等)。 在桌面上,用户的Media Engagement Index阈值已被越过,这意味着用户之前已播放带有声音的视频。 在移动设备上,用户已将该网站添加到其主屏幕。
为我工作这个解决方案:
jQuery("video-iframe")[0].src += "&autoplay=1";
即使使用所有有效的自动播放html属性,它也不适合我,但上面的代码有帮助。