youtube api call function when video ends

做~自己de王妃 提交于 2019-12-10 16:55:11

问题


I need to find out when an embedded youtube video ends via javascript.

This is my embed code:

    <object id="ytplayer" height="35" width="560"><param name="movie" value="http://www.youtube.com/v/u8C-ZTQJIkU?version=3&enablejsapi=1&playerapiid=ytplayer&rel=0&fs=0&theme=light&showinfo=0&modestbranding=1&autohide=0&color=white">
    </param>
    <param name="allowFullScreen" value="false">


    </param>
    <param name="allowscriptaccess" value="always">


    </param>
    <embed src="http://www.youtube.com/v/u8C-ZTQJIkU?version=3&rel=0&fs=0&theme=light&showinfo=0&modestbranding=1&autohide=0&color=white" type="application/x-shockwave-flash" allowfullscreen="false" width="560" height="35" allowscriptaccess="always"></embed></object>

This is the code I have so far to find out when it has ended but the alert doesnt come up. Could you help me find whats wrong?

    <script type="text/javascript" src="http://www.youtube.com/player_api"></script>
    <script type="text/javascript">
    function onYouTubePlayerReady(playerId) {
      ytplayer = document.getElementById("ytplayer");
      ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
    }

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

Thank.


回答1:


You seem to have shown only part of the code. The object tag should contain an attribute called id that should be set to ytplayer. Here is the fully working code:

 <object type="application/x-shockwave-flash" id="ytplayer" data="http://www.youtube.com/v/u8C-ZTQJIkU?enablejsapi=1&amp;playerapiid=ytplayer&amp;version=3" width="425" height="356"><param name="allowScriptAccess" value="always">
    <param name="allowScriptAccess" value="always">
</object>

</body>
</html>

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

<script type="text/javascript">

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

    function onytplayerStateChange(newState) {
        alert("New state " + newState); 
    }

</script>


来源:https://stackoverflow.com/questions/10581543/youtube-api-call-function-when-video-ends

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!