Поймать событие, когда Flash-видео YouTube завершено воспроизведение с использованием JavaScript - PullRequest
9 голосов
/ 19 января 2011

Я должен создать вид видео ротатора YouTube, используя jquery. Я посмотрел вокруг, и, похоже, не было плагина, который соответствовал бы требованию. Даже не решение.

Может быть, я просто попробую это сделать. Итак, теперь, как я могу определить, что видео на YouTube закончено и автоматически воспроизводится следующее, с использованием Jquery или просто с помощью javascript?

И если вы знаете плагин, который может помочь, пожалуйста, укажите.

Спасибо

1 Ответ

12 голосов
/ 19 января 2011

Сначала вы должны убедиться, что встраиваемый вами проигрыватель YouTube поддерживает javascript, передав enablejsapi=1 в качестве параметра get.Вот как я вставляю (хромированный) плеер с помощью SWFObject:

    var player_id = "your_player_id";
    var params = { allowScriptAccess: "always" };
    var url = "http://www.youtube.com/apiplayer?enablejsapi=1&version=3&playerapiid=" + player_id;
    swfobject.embedSWF(url, player_id, '320', '240', "9.0.0", null, null, params, {'id': player_id});

Затем вам нужно добавить глобальную функцию, которая вызывается, когда проигрыватель готов, и в нее добавить прослушиватель для завершения видео.:

    var player = null;

    function onYouTubePlayerReady(player_id) {
      player = document.getElementById(player_id);
      player.addEventListener('onStateChange', 'playerStateChanged');
      player.loadVideoById(youtube_video_id);
    };

    function playerStateChanged(state) {
      // State code 0 means playback ended
      if (state == 0) {
        player.loadVideoById(next_video_id);
      }
    };

Я написал этот код для моей закладки на плейлист YouTube.Вот ссылка, если вам нужен рабочий пример: http://zaius.github.com/youtube_playlist/

А если вы хотите сделать что-то более глубокое, вот ссылка на JavaScript на YouTube, где я разработал, как все это сделать: http://code.google.com/apis/youtube/js_api_reference.html

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