首页 文章

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

提问于
浏览
1

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

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

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

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

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

相关问题