【问题标题】:How to Capture Youtube Video Start Using JavaScript API如何使用 JavaScript API 开始捕获 Youtube 视频
【发布时间】:2011-07-30 05:11:05
【问题描述】:

编程语言: Javascript 和 Youtube Javascript API
问题: 一个网站使用 Javascript API 在其上放置了多个 youtube 视频。用户开始观看视频后立即调用/报告另一个函数。
我目前拥有的代码:

var youTubePlayerLoggers = {};
function onYouTubePlayerReady(playerId) {
    var video = document.getElementById(playerId);
    youTubePlayerLoggers[playerId] = function (newState) {            
            if (newState == 1) {
              if (video && video.getDuration) {
                if (video.getCurrentTime() == 0) {                  
                  UserStartedVideo('param1', 'param2');
                }          
               }
            }
          };
     video.addEventListener('onStateChange', 'youTubePlayerLoggers.' + playerId);
     video.addEventListener('onError', 'onPlayerError');
        }

function UserStartedVideo(param1,param2){
}

在代码的第 5 行中,我正在检查 newState == 1(即用户是否单击了播放按钮)然后是否 video.getCurrentTime ==0 --> 这是用户视频的开始。

我遇到的问题: 我在网站上有多个视频。当我单击第一个视频的播放按钮时,会触发 UserStartedVideo 方法。同样,当我单击第二个视频的播放按钮时,应该立即触发 UserStartedVideo 方法,但它没有发生。

谁能告诉我我在哪里做错了或以其他方式捕捉视频的开头?

【问题讨论】:

  • 您找到解决方案了吗?

标签: javascript youtube-api dom-events


【解决方案1】:

你检查过http://code.google.com/apis/youtube/js_api_reference.html#Playback_status吗?

player.getPlayerState() 的 setTimeout 检查怎么样?

【讨论】:

  • player.getPlayerState() 给出视频的状态,即未开始、正在播放、暂停或结束。我需要检查用户是否已经开始播放视频。如果我有一个视频,我上面的代码可以完美运行,但我在同一页面上有多个视频。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-01
  • 2014-11-14
  • 1970-01-01
  • 2013-07-20
  • 1970-01-01
  • 2018-10-19
相关资源
最近更新 更多