我有一个嵌入了YouTube视频的网站。我正在使用YouTube播放器API嵌入我的视频,播放器设置为在页面加载时自动播放。我已经设置了一个侦听事件,以便在当前嵌入视频播放完毕后重定向到下一个视频(我需要重定向到新的物理页面,而不是将下一个视频加载到API创建的现有iframe中,因为每个页面都包含信息/特定于该视频的评论)。
这一切都很完美,但前提是你打开了标签。如果你在背景中列出视频(它们只是设置为静态图像的录音,没有什么可以实际观看),页面将在当前视频完成后重定向,但YouTube视频将无法开始播放直到您单击选项卡。只要您单击选项卡,自动播放就会启动并开始播放视频。但无论选项卡是否打开,我都需要自动播放视频。有什么想法吗?
我已经尝试过JWplayer,重定向/自动播放效果很好,但这意味着我必须自己托管视频,而我宁愿在YouTube上托管。我也注意到YouTube.com没有这个问题。它会在播放列表中加载下一个视频页面并自动播放该标签是否打开。
此问题仅发生在Chrome,Firefox和Opera中,但不会发生在Edge或IE中。
感谢。
<div id="yt-player"></div>
<script src="http://www.youtube.com/player_api"></script>
<script>
// create youtube player
var player;
function onYouTubePlayerAPIReady(){
player = new YT.Player('yt-player',{
height:'433',
width:'770',
videoId:'xxxxxxxxxxx',
playerVars: { 'autoplay': 1, 'controls': 1, 'html5': 1 },
events:{
'onReady':onPlayerReady,
'onStateChange':onPlayerStateChange
}
});
}
// autoplay video
function onPlayerReady(event){
event.target.playVideo();
}
// when video ends
function onPlayerStateChange(event) {
if(event.data === 0 && $("#autoplayCB").is(':checked')) {
window.location="/nextvideo.htm";
}
}
</script>
答案 0 :(得分:0)
我遇到过这个问题。我发现你必须先创建播放器,然后更改你使用loadVideoById的视频。
https://developers.google.com/youtube/iframe_api_reference#Queueing_Functions
这里的问题是你必须自己制作视频列表,或找到一些方法将视频列表放到javascript数组中,并在当前视频结束时调用下一个视频。您需要构建手动播放列表。
唯一的另一个警告是,您必须在第一次在页面上加载视频时,在新标签中打开视频而不提供标签焦点将阻止它初始化,直到您这样做。