一个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");
        }
    }
}

题:
我可以使用对象something中的属性event来确定playing state的来源吗?

我需要区分playing state的两个可能原因:
  • 正在播放,因为用户单击了“播放”按钮
  • 正在播放,因为该代码以编程方式称为player.playVideo()

  • API有可能吗?如果没有,关于如何以优雅的方式实现它的任何想法?

    最佳答案

    YouTube Iframe Player API不会公开播放器控件本身的任何事件,而且我也不认为将内容包装在DIV中会有所帮助,因为单击事件不会冒充iFrame。您可以嵌入无镶边播放器,然后构造自己的播放器控制栏;这样,您将拥有对控制按钮的完全访问权限,并可以捕获其上的点击事件。

    10-08 17:05