Youtube iframe API:区分"playing because click"与"playing because playVideo()"



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上弹出。你可以嵌入一个无铬播放器,然后构建自己的播放器控制栏;这样,您就可以完全访问控制按钮,并可以捕捉它们上的点击事件。

相关内容

  • 没有找到相关文章

最新更新