Youtube iframe API:区分“因为点击而玩”与“因为playVideo()而玩”

时间:2015-04-25 04:55:50

标签: youtube youtube-api youtube-javascript-api

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有关吗?如果不是,关于如何以优雅的方式实现它的任何想法?

1 个答案:

答案 0 :(得分:0)

YouTube Iframe播放器API不会从播放器控件本身公开任何事件,我不认为在DIV中包装内容会有所帮助,因为点击事件不会冒出iFrame。您可以嵌入一个无边框播放器,然后构建自己的播放器控件栏;这样,您就可以完全访问控制按钮,并可以捕获它们上的点击事件。