youtube播放器有onStateChange
事件的处理程序:
function onPlayerReady(event) {
if (event.data == YT.PlayerState.PLAYING) {
if (event.something) {
console.log("The player is playing because the user clicked the 'play' button")
} else {
console.log("The player is playing because player.playVideo() was called programatically");
}
}
}
问题:
对象event
中是否有属性something
可用于确定playing state
的源?
我需要区分playing state
的两个可能原因:
- 由于用户单击了"播放"按钮而播放
- 播放是因为代码程序化地称为
player.playVideo()
API有可能做到这一点吗?如果没有,有什么关于如何以优雅的方式实现它的想法吗?
YouTube Iframe Player API不会暴露来自播放器控件本身的任何事件,我认为将事物包装在div中没有帮助,因为点击事件不会在Iframe上弹出。你可以嵌入一个无铬播放器,然后构建自己的播放器控制栏;这样,您就可以完全访问控制按钮,并可以捕捉它们上的点击事件。