Youtube视频API onStateChange事件不能用于更改视频

时间:2014-03-16 01:31:36

标签: javascript api events video youtube

我想使用Youtube API提供的onStateChange事件来收听视频的结尾,然后在播放器中播放新的视频。但是,出于某种原因,这似乎不可能。

function onPlayerStateChange(event) {
    if(event.data === 0) {
        console.log('done');
        goNext();
    }
}

function goNext() {
    player.loadVideoById('JBJ1VPBrCl0', 0, 'default');
}

我像这样注册事件处理程序

player;
function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
      height: '530',
      width: '640',
      videoId: '0Bmhjf0rKe8',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
}

问题是:如果我手动调用我的函数goNext(),视频会发生变化。如果我等待视频终止,则“完成”消息将打印到控制台,但视频不会更改。我有什么想法吗?

我在这里竖起了小提琴。谢谢!

http://jsfiddle.net/PHXY2/

1 个答案:

答案 0 :(得分:0)

FWIW,你的小提琴示例对我来说很好(在视频结束后它会自动开始播放"短片 - 猫喵 - 有趣的猫视频 - 红色激光"视频)你碰巧有任何YouTube-之前安装的相关浏览器扩展众所周知,有些问题会导致YT API出现问题。