在后台自动播放嵌入的YouTube视频?

时间:2016-03-07 16:08:57

标签: javascript jquery youtube

我有一个嵌入了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>

1 个答案:

答案 0 :(得分:0)

我遇到过这个问题。我发现你必须先创建播放器,然后更改你使用loadVideoById的视频。

https://developers.google.com/youtube/iframe_api_reference#Queueing_Functions

这里的问题是你必须自己制作视频列表,或找到一些方法将视频列表放到javascript数组中,并在当前视频结束时调用下一个视频。您需要构建手动播放列表。

唯一的另一个警告是,您必须在第一次在页面上加载视频时,在新标签中打开视频而不提供标签焦点将阻止它初始化,直到您这样做。