YouTube iframe播放器API-OnStateChange不触发

如前所述,它只是YouTube开发者页面上添加的代码的精确副本

alert('State Changed')

作为onPlayerStateChange函数中要触发的第一件事。

但是,什么都没有发生……无论我如何看待它以及所做的更改,我都无法让onStateChange做任何事情。

我该如何解决这个问题?

回答:

作为临时解决方案,您只需要在onReady事件中添加事件侦听器:

function onReady() {

player.addEventListener('onStateChange', function(e) {

console.log('State is:', e.data);

});

}

确保从YT.PLAYER构造函数中删除onStateChange事件(请参阅jsfiddle)。

另外,正如Google代码发布线程中提到的那样,您可以设置时间间隔并轮询播放器的当前状态,而不是监听onStateChange事件。这是执行此操作的示例代码片段:

setInterval( function() {

var state = player.getPlayerState();

if ( playerState !== state ) {

onPlayerStateChange( {

data: state

});

}

}, 10);

其他人已经提到,如果Firefox放置在具有css属性的容器中,则Firefox不会实例化YouTube播放器display:

none。Internet Explorer也将无法使用visibility:

hidden。如果您发现这是问题所在,请尝试使用将该容器放置在页面之外left: -150%

以上是 YouTube iframe播放器API-OnStateChange不触发 的全部内容, 来源链接: utcz.com/qa/406263.html

回到顶部