Как определить, когда заканчивается воспроизведение видео на YouTube? - PullRequest
82 голосов
/ 21 октября 2011

Я работаю над сайтом, на котором есть тонна встроенных видео YouTube, клиент хочет показывать всплывающее окно всякий раз, когда видео перестает показывать.

Я посмотрел на API YouTube и, кажется, есть способчтобы определить, когда заканчивается видео:

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

, но я не могу встроить видео, как они упоминались на этой странице, так как все видео уже есть на сайте (тысячи былидобавлено вручную путем вставки встраиваемого кода).

Есть ли способ определить окончание этих видео, не изменяя ни одно из существующих видео (используя JavaScript)?

Ответы [ 2 ]

158 голосов
/ 30 июля 2012

Это можно сделать через API проигрывателя YouTube:

http://jsfiddle.net/7Gznb/

Рабочий пример:

    <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>
0 голосов
/ 07 ноября 2011

Что вы можете сделать, это включить скрипт на всех страницах, который выполняет следующее ... 1. найдите youtube-iframe: ищите его по ширине и высоте по заголовку или находя www.youtube.com в его источнике. Вы можете сделать это ... - перебирая window.frames с помощью цикла for-in, а затем отфильтровывая по свойствам

  1. внедрить jscript в iframe текущей страницы, добавив onYoutubePlayerReady must-include-function http://shazwazza.com/post/Injecting-JavaScript-into-other-frames.aspx

  2. Добавьте прослушиватели событий и т. Д.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...