2011-04-05 2 views
1

프로그래밍 언어를 사용하여 YouTube 동영상 시작을 캡처 : 자바 스크립트와 유튜브 자바 스크립트 API
문제 : 웹 사이트는 자바 스크립트 API를 사용하여에 배치 여러 유튜브 비디오를 가지고있다. 사용자가 비디오 시청을 시작하자마자 다른 기능을 호출 /보고하십시오.
코드 지금까지이 : newState == 1 (즉, 사용자가 재생 버튼을 클릭했다) 만약 내가 확인하고 코드의 5 번째 줄에어떻게 자바 스크립트 API를

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){ 
} 

다음 경우 video.getCurrentTime == 0 -> 사용자가 동영상을 시작합니다.

문제 현재 : 웹 사이트에 여러 개의 동영상이 있습니다. 첫 번째 비디오의 재생 버튼을 클릭하면 UserStartedVideo 메서드가 트리거됩니다. 마찬가지로, 두 번째 비디오의 재생 버튼을 클릭하자마자 UserStartedVideo 메소드가 트리거되어야하지만, 그렇게되지는 않습니다.

누구나 내가 비디오의 시작을 캡처하기 위해 어디에서 잘못했는지 또는 다른 방법으로 알 수 있습니까?

+0

해결책을 찾았습니까? – Jiloc

답변

0

http://code.google.com/apis/youtube/js_api_reference.html#Playback_status을 확인 했습니까?

player.getPlayerState()의 setTimeout 검사는 어떻습니까?

+0

player.getPlayerState()는 동영상 상태, 즉 Unstarted, Playing, Paused 또는 Ended를 제공합니다. 사용자가 비디오를 시작했는지 여부를 확인해야합니다. 위의 코드 하나가 완벽하게 작동하지만 동일한 페이지에 여러 개의 비디오가 있습니다. – MNVR