检测YouTube API中的事件源



我在使用youtube IFrame API创建的网页上有一个youtube播放器
当我得到onStateChange事件时,如代码示例中所示:

var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'M7lc1UVf-VE',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });

当调用onPlayerStateChange时,我希望能够区分

  1. 用户点击播放器UI并更改状态(播放、暂停等)
  2. 已进行API调用以更改状态(player.playVideo()player.pauseVideo()等)

目前,两者的结果完全相同。

  1. 我想你会遇到跨域iframe的问题。

    • iframe跨域策略问题——一种解释
    • 跨域iframe问题-如果页面和iframe页面都位于同一域,则解决方案
    • 如何跟踪嵌入式视频(youtube、vimeo等)的点击事件?(跟踪播放次数)-类似的问题和答案,这是不可能的
  2. 正如我在评论中提到的,在传递给事件侦听器的事件对象中可能有一些有用的信息。我浏览了至少两个级别,没有发现用户点击操作和API调用之间的区别。然而,对象中有很多信息,可能还有一些信息有助于区分这两个动作。

  3. 如果您的代码正在进行API调用,也许您可以通过其他方式跟踪它。然后您的代码可以判断是否进行了API调用。也许可以存储当前调用和时间戳——类似的东西。

  4. 最后,也许还有另一种方法可以捕捉你想要的信息。你的问题并没有具体说明最终目标。我建议探索替代方案,因为简单的解决方案似乎是不可能的。

相关内容

  • 没有找到相关文章

最新更新