Как определить, когда заканчивается воспроизведение видео на YouTube?

67

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

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

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

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

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

  • 1
    Единственное, что я могу предложить, это программно изменить записи встраивания, чтобы включить enablejsapi=1 . Если они находятся в базе данных, изменить атрибут src довольно просто. Вам может понадобиться некоторое регулярное выражение, если они статически вставлены в файлы HTML.
  • 0
    @ Джек сделано, принял мой собственный.
Теги:
youtube
actionscript
flash

2 ответа

143
Лучший ответ

Это можно сделать через 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>
  • 1
    Как вы интегрировали это с несколькими видео на одной странице?
  • 0
    @ motoxer4533 Ну, мне не приходилось иметь дело с несколькими видео на одной странице, но только по одному на страницу. Не уверен, что API позволяет создавать несколько игроков и определять их отдельные конечные точки.
Показать ещё 8 комментариев
-4

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

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

  • 1
    не уверен, возможно ли это из-за междоменных правил

Ещё вопросы

Сообщество Overcoder
Наверх
Меню