2011-11-20 7 views
4

에 의해 삭제되었습니다 여기에 내가 작업하고있는 사이트입니다. 한 곡이 재생되면 목록의 다음 곡이 자동으로 재생되기 시작하도록 기능을 구현했습니다.유튜브 API 비디오 처리 유튜브

로드하려는 동영상이 저작권 콘텐츠를 위해 YouTube에서 삭제되었을 때 문제가 있습니다.

player.getPlayerState() 

를 그리고 상태가 0 (종료)를 돌려 대기 : 현재, 나는 호출하여 노래의 상태를 확인하고 있습니다. 노래가 끝나면 다음 노래를로드합니다. 그 노래가로드되면 나는 다음과 같이 부른다 :

player.playVideo() 

그러나 그 노래가 삭제되면, 나는 운이 없다. 나는 그 사건을 파악하고 다음 노래로 건너 뛸 수있는 방법을 찾고 싶다. 그러나 제거 된 노래를 시도하고 재생할 때 상태가 변경되지 않습니다. 의미 :

function onytplayerStateChange(newState) { 
//do stuff 
} 

절대로 실행되지 않습니다. 이 이벤트를 감지하고 올바르게 처리하려면 어떻게해야합니까?

+0

동영상이 유효하지 않은 경우 왜 getPlayerState가 즉시 0을 반환하지 않습니까? –

+0

잘 모르겠습니다. 'onytplayerStateChange()'는 youtube 비디오가 바뀔 때마다 실행됩니다. 비디오가 무효 인 경우 상태를 변경하지 않습니다. 이유가 없습니다. – CHawk

답변

6

대신 OnStateChange를 사용하면 OnError 이벤트 리스너를 사용하여 시도해보십시오. 100을 반환하면 동영상이 삭제되었거나 비공개로 설정되었음을 의미합니다. https://code.google.com/apis/youtube/flash_api_reference.html#Adding_event_listener

그래서 당신이이 라인을 따라 뭔가하고 싶은 것 : 다음의 OnError 리스너에 공식 문서 여기를 참조하십시오

ytplayer.addEventListener("onError", "onPlayerError"); 

function onPlayerError(errorCode) { 
    if(errorCode == 100) 
    { 
     //play next video 
    } 
} 

당신은 API를 어지 수 및 최선의 방법을 결정하는 오류를 잡으려고 여기로 이동 : https://code.google.com/apis/ajax/playground/?exp=youtube#polling_the_player

+1

Perfect. 코드 놀이터 (Code Playground)는 매우 유용하며 솔루션은 완벽하게 작동합니다. yar 현상금을 즐기십시오, 친구! – CHawk