检测YouTube API中的事件来源

时间:2013-12-03 05:39:12

标签: javascript youtube 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. 用户点击了播放器用户界面并更改了状态(播放,暂停等)
  2. 已进行用于更改状态的API调用(player.playVideo()player.pauseVideo()等)
  3. 目前两者都会产生完全相同的事件。

1 个答案:

答案 0 :(得分:2)

  1. 我认为您将遇到跨域iframe问题。

  2. 正如我在评论中提到的,事件对象中可能会传递一些有用的信息传递给事件监听器。我浏览了至少两个级别,发现用户点击操作和API调用没有区别。但是,对象中有很多信息,可能有助于区分这两个行为。

  3. 如果您的代码正在进行API调用,也许您可​​以通过其他方式进行跟踪。然后您的代码可以判断是否进行了API调用。也许存储当前的调用和时间戳 - 这些都是这样的。

  4. 最后,也许还有另一种方法来捕获您所追求的信息。你的问题并没有真正指明最终目标。我建议探索替代方案,因为似乎没有一种简单的解决方案。