2014-03-26 2 views
1

YouTube API의 getCurrentTime()에서 시간 변경을 감지하는 방법이 있습니까?YouTube에서 변경을 감지하는 방법 getCurrentTime()?

목적 : 제한된 시간 동안 단일 비디오를 재생하려면 (< 1 분) 내 비디오를 다음 비디오로 이동하십시오.

나는 object.watch를 사용하려고 생각했지만 함수가 아닌 변수에서만 작동합니다.

원본 소스 코드 https://s.ytimg.com/yts/jsbin/www-widgetapi-vfl9twtxR.js에 뭔가를 바인딩하려고 시도했지만 너무 복잡했습니다.

+0

물론 그것이 축소되어 사람이 해석하기가 너무 어렵 기 때문에 너무 복잡합니다 ... –

답변

0

YouTube 플레이어는 iFrame으로 포장되어 있기 때문에 플레이어가 노출하는 내용에 따라 달라지며 getCurrentTime() 함수를 통해 현재 시간이 노출 된 동안에는 시간이 경과 할 때마다 발생하는 이벤트가 노출되지 않습니다 업데이트 될 수 있습니다 (실제로 시간은 노출 된 기능으로 초당 6 ~ 7 번만 업데이트되며 항상 일정하지는 않습니다).

유일한 옵션은 자바 스크립트 타이머를 설정하는 것입니다. 그것을 할 수있는 많은 방법; 간단한 일이 이렇게 될 것이다 : iframe을에서 PostMessage를 같이

setInterval(function(){ 
    // here you'd raise some sort of event based on the value of getCurrentTime(); 
    },100); // polling 8 times a second, to make sure you get it every time it changes. 

항상 완벽하게 일치하지 않습니다, 당신은이 간격 타이머가 클 수있을 수 있습니다. 또는 requestAnimationFrame과 같은 것을 사용하여 초당 60 회 폴링 할 수 있습니다.

https://developers.google.com/youtube/iframe_api_reference#Getting_Started

에서

0

첫 번째 예는 거의 정확하게 시작하는 데 필요한 무엇을 제공합니다. 비디오가 시작되면 타이머를 시작하는 코드가 6 초 동안 비디오를 중지합니다. 6 초 후 비디오를 중지하는 대신 60 초 후에 동일한 div에서 새 YT.Player 인스턴스를 시작하는 것이 좋습니다.

관련 문제