2011-10-29 4 views
0

사용자가 동영상의 미리보기 이미지를 클릭하면 YouTube 동영상을 동적으로로드하기 위해 YouTube iframe API를 사용하고 있습니다. 동영상이 이미 재생 중이고 사용자가 다른 동영상 재생을 시작하면 이미 재생중인 첫 번째 동영상을 일시 중지하고 싶습니다.같은 페이지에서 다른 동영상을 재생할 때 YouTube 동영상 일시 중지

동영상 재생이 끝나면 다음 동영상을로드하고 싶습니다.

loaded_video_array = new Array(); 

$("div.embed").live('click', function() { 

    thumb.removeClass("play-button").addClass("pressed"); 

    add_embedded_player(); 

}); 

function onPlayerStateChange(event) { 
    if (event.data == 0){ 

     $("div.pressed").parents("div.video").next().find("div.embed").click(); 

    }else if (event.data == 3){ 

     for (var i=0;i < loaded_video_array.length; i++){ 
      loaded_video_array[i].pauseVideo(); 
     } 

     loaded_video_array.push(event.target); 
    } 
}; 

답변

0

사용자가 동적으로 비디오를로드 할 때마다, 그것은 배열 변수/참조의 저장 :

여기 내 코드입니다. 그런 다음 새 비디오를 시작할 때 배열을 반복하고 각 비디오를 일시 중지하십시오. 이미 일시 중지 된 경우 파울도 없습니다. 그것은 최선의 방법은 아니지만 작동 할 것입니다.

+0

어떻게 비디오를 참조 할 수 있습니까? 'playerapiid' 매개 변수를 설정하고'document.getElementById (apiid) .pauseVideo()'를 호출 해 보았습니다. 그러나 오류는 null 변수에서 메서드를 호출하고 있다는 것입니다. –

+0

동영상을 재생하는 코드를 게시 할 수 있습니까? 나는 너를 도울 수있다. – switz

+0

OK 코드를 게시하고 제안 사항을 따랐습니다. 하나의 큰 문제가 있다는 것을 제외하면 작동합니다. 비디오가 처음부터 재생 될 때 event.data == 3 일 때만 배열의 비디오를 일시 중지 할 수 있습니다. 사용자가 이미 일시 중지 된 동영상을 재생하면 다른 동영상에 대한 일시 중지 코드가 실행되지 않습니다. –

관련 문제