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

How do I interact with the YouTube player on youtube.com – not the iFrame API?

本文关键字:交互 API iFrame 播放器 youtube com YouTube 上的      更新时间:2023-09-26

我想接收事件,并从YouTube HTML5播放器获得播放器选项,当你浏览到youtube.com上的视频页面时加载。

我知道可以通过HTML5媒体事件控制播放器。例如,当我在控制台中运行这段代码时,每当触发seek事件时,它就会将seeked打印到控制台中:

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

然而,YouTube播放器在其API中提供了更多内容,例如我想订阅的各种事件。我怎么做呢?这些事件显然不会在video元素上触发。

例如,当onPlaybackQualityChange事件被触发时,我如何在控制台上打印一些东西?

注意:我不是在谈论通过iFrame API加载的播放器。

可以与之交互的实际播放器对象具有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()