Youtube视频API的onStateChange事件不能用来改变视频

Youtube video API onStateChange event cannot be used to change video

本文关键字:视频 改变 不能 onStateChange API Youtube 事件      更新时间:2023-09-26

我想使用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/

FWIW,你的小提琴的例子工作得很好为我(视频结束后,它自动开始播放"短猫喵喵-有趣的猫视频-红色激光"视频)你碰巧有任何youtube相关的浏览器扩展安装早些时候?其中一些已知会导致YT API出现问题。