it-swarm.com.de

Wie erkenne ich, wann ein YouTube-Video abgespielt wurde?

Ich arbeite an einer Site mit einer Menge eingebetteter YouTube-Videos. Der Client möchte ein Popup anzeigen, wenn ein Video nicht mehr abgespielt wird.

Ich habe mir die YouTube-API angesehen und es scheint eine Möglichkeit zu geben, zu erkennen, wann ein Video endet:

http://code.google.com/apis/youtube/js_api_reference.html

ich kann die auf dieser Seite erwähnten Videos jedoch nicht einbetten, da sich alle Videos bereits auf der Website befinden (Tausende, die manuell durch Einfügen von Einbettungscode hinzugefügt wurden).

Gibt es eine Möglichkeit, das Ende dieser Videos zu erkennen, ohne die vorhandenen Videos zu ändern (mithilfe von Javascript)?

82
TK123

Dies kann über die YouTube-Player-API erfolgen:

http://jsfiddle.net/7Gznb/

Arbeitsbeispiel:

    <div id="player"></div>

    <script src="http://www.youtube.com/player_api"></script>

    <script>

        // create youtube player
        var player;
        function onYouTubePlayerAPIReady() {
            player = new YT.Player('player', {
              width: '640',
              height: '390',
              videoId: '0Bmhjf0rKe8',
              events: {
                onReady: onPlayerReady,
                onStateChange: onPlayerStateChange
              }
            });
        }

        // autoplay video
        function onPlayerReady(event) {
            event.target.playVideo();
        }

        // when video ends
        function onPlayerStateChange(event) {        
            if(event.data === 0) {          
                alert('done');
            }
        }

    </script>
158
TK123