Jak wykryć, gdy film z youtube zakończy odtwarzanie?

Pracuję nad stroną, która ma mnóstwo osadzonych filmów z youtube, klient chce pokazać wyskakujące okienko za każdym razem, gdy film przestaje się chlapać.

Spojrzałem na api youtube i wydaje się, że jest sposób, aby wykryć, kiedy film się kończy:

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

Ale nie mogę osadzić filmy, jak wspomniano na tej stronie, ponieważ filmy są już na stronie (tysiące, które zostały dodane ręcznie przez wklejenie embed kod).

Czy istnieje sposób, aby wykryć zakończenie tych filmów bez zmiany żadnego z istniejących filmów (za pomocą javascript)?

Author: TK123, 2011-10-21

2 answers

Można to zrobić za pomocą interfejsu API youtube player:

Http://jsfiddle.net/7Gznb/

Przykład roboczy:

    <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>
 149
Author: TK123,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-11 11:50:16

To, co możesz zrobić, to dołączyć skrypt na wszystkich stronach, który wykonuje następujące czynności ... 1. znajdź youtube-iframe : szukając go po szerokości i wysokości według tytułu lub znajdując www.youtube.com źródło. Możesz to zrobić przez ... - zapętlam się przez okno.ramki za pomocą pętli for-in, a następnie filtrowanie za pomocą właściwości

  1. Inject jscript in the iframe of the current page adding the onYoutubePlayerReady must-include-function http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx

  2. Dodaj słuchaczy zdarzeń itp..

Hope this helps

 -6
Author: yshouman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-07 05:01:20