이 방법은 실제로 yt API에서 getCurrentTime
메서드로 수행합니다. 구체적으로는 setInterval
을 사용하여 반복 함수로 호출하는 것입니다.
당신은에서와 시간, 뭔가 같은과 함께, 당신이 제시하고자하는 오버레이의 배열을 유지해야합니다 다음
var overlays = [
{text:"Some text",from:1,to:6},
{text:"Some other text",from:8,to:14}];
, 당신은 영화를 처리하는 기능의 몇 가지가 필요합니다 재생 및 중지 (또는 일시 중지).
var watchId;
function startWatch(){
watchId = setInterval(function(){
showOrHideOverlay(ytplayer.getCurrentTime());
},1000)
}
function stopWatch(){
clearTimeout(watchId);
}
당신은 그 변수 ytplayer
을 사용하고 jsapi documentation에 따라이 다음과 같은 코드를 사용하여 잡고 할 수 있습니다 알 수 있습니다 :이 우리를 이끌고,이 필자의
var ytplayer ;
function onYouTubePlayerReady(playerId) {
ytplayer = document.getElementById("myytplayer");
ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
}
공지 사항 이벤트 리스너를 부착을 방법이 그래서 퍼즐의 마지막 조각이 실제로 OC로 설정 필자는 "틱"을 처리하는
function onytplayerStateChange(newState) {
if(newState == 1){ // playing
startWatch()
}
else if(newState == 0 || newState == 2){ //ended or paused
stopWatch();
}
}
을 변경하는 영화 상태를 처리하는 매초마다. 이 방법 showOrHideOverlay
보이는 같은 :
function showOrHideOverlay(time){
// find overlays which should be visible at "time"
var shownOverlays = false;
for(var i=0;i<overlays.length;i++){
if(overlays[i].from < time && overlays[i].to > time){
$('#overlay').text(overlays[i].text);
shownOverlays = true;
}
}
if(!shownOverlays)
$('#overlay').text("");
}
마지막으로, 라이브 예 : http://jsfiddle.net/zTZjU/ (클립에 그냥 언론 플레이)이 바이올린
야, 너 정말 고마워. 이거 대단해. 코드를 넘겨 받아 이해하자마자 동의 할 것입니다! – dandoen