2014-06-19 3 views
1

YouTube 플레이어 OnStateChange가 발사되지 않는 문제가 있습니다. 다른 게시물을 살펴 봤는데 아마도 다른 (chromeless javascript) 버전을 사용하고있어 내 상황에 맞지 않습니다.javascript YoutubePlayer OnStateChange가 실행되지 않음

HTML :

<div id="ytapiplayer"> 
You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 

자바 스크립트 :

var params = { allowScriptAccess: "always", wmode: "Opaque" }; 
var atts = { id: "player" }; 
swfobject.embedSWF("http://www.youtube.com/apiplayer?enablejsapi=1&version=3", 
        "ytapiplayer", "100%", "100%", "8", null, null, params, atts); 

function onYouTubePlayerReady(playerId){ 
    player = document.getElementById("player"); 
} 

나는 기본적으로 문서의 예제를 복사합니다. 그럼 난 그냥

var player = document.getElementById('player'); 

나는 잘 작동하도록 할 수있다. 그러나 유일한 문제는 상태가 변경 될 때 OnStateChange 이벤트가 발생하지 않는다는 것입니다. 코드는 이렇게됩니다.

document.getElementById('player').addEventListener('OnStateChange', 
    function(new_state){ 
    console.log(new_state); 
    } 
) 

새로운 상태가 결코 인쇄되지 않습니다. 내가 잘못하고 있니? http://jsfiddle.net/8QtrC/1/

+0

내가 자바 스크립트 객체 (ID입니다 ATTS의 특정와 같은 = "플레이어")에서 임베드 생각에서 getElementById ('선수') – Als

+0

에 사용되는 어떠한 요소라는 이름의 플레이어 (ID = "ytapiplayer")이 없다 "ytapiplayer". 그 객체 (id = "player")에 대한 모든 메소드를 호출 할 수 있지만 OnStateChange는 결코 해고되지 않습니다. – Flmhdfj

+0

당신이 옳을 수도 있습니다. 실행할 수있는 코드를 추가 하시겠습니까? – Als

답변

1

이 예제는 저에게 효과적입니다.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script> 

<body> 

    <div id="ytapiplayer"> 
    You need Flash player 8+ and JavaScript enabled to view this video. 
    </div> 

<script type="text/javascript"> 

    var params = { allowScriptAccess: "always" }; 
    var atts = { id: "myytplayer" }; 
    swfobject.embedSWF("http://www.youtube.com/v/Bl4Qne-RpcM?enablejsapi=1&playerapiid=myytplayer&version=3", 
         "ytapiplayer", "425", "356", "8", null, null, params, atts); 

function onYouTubePlayerReady(playerId) { 
    ytplayer = document.getElementById("myytplayer"); 
    ytplayer.addEventListener("onStateChange", "onytplayerStateChange"); 
} 

function onytplayerStateChange(newState) { 
    alert("Player's new state: " + newState); 
} 
    </script> 
</body> 
+0

아, 그게 그 기능이 사용되는 방법입니다. 굉장해. – Flmhdfj

관련 문제