如何与youtube.com上的YouTube播放器进行互动 - 而不是iFrame API?

时间:2016-10-11 10:07:42

标签: javascript html5 youtube

我希望从浏览到a video page on youtube.com时加载的YouTube HTML5播放器中接收活动并获取播放器选项。

我知道可以通过HTML5 media events控制玩家。例如,当我在控制台中运行此代码时,只要触发搜索事件,它就会向控制台输出seeked

var v = document.getElementsByTagName("video")[0];
v.addEventListener("seeked", function() { console.log("seeked") }, true);

但是,YouTube播放器在其API中提供了更多内容,例如我要订阅的various events。我怎么做?这些事件显然不会在video元素上被触发。

例如,当onPlaybackQualityChange事件被触发时,如何在控制台上打印内容?

注意:我不是在谈论attaching to a player loaded via the iFrame API

1 个答案:

答案 0 :(得分:0)

可与之互动的实际玩家对象的ID为movie_player。该ID当然可以随时间而改变。截至2016年10月,Chrome,Firefox和Safari的ID相同。

例如:

var p = document.getElementById("movie_player");
p.addEventListener("onPlaybackQualityChange", function() { console.log("quality changed") }, true);

当然可以根据iFrame API添加其他事件监听器。

玩家也可以像往常一样进行互动:

p.playVideo()