Видео-события на YouTube не запускаются [при локальном тестировании или нет] - PullRequest
5 голосов
/ 06 марта 2012

У меня есть следующий код, в значительной степени взятый непосредственно из API, но события не запускаются. Есть идеи? Спасибо.

var tag = document.createElement('script');
  tag.src = "http://www.youtube.com/player_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  var player;
  function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
      height: '250',
      width: '300',
      videoId: 'u1zgFlCw8Aw',
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
  }

  function onPlayerReady(event) {
    alert("Ready");
    event.target.playVideo();
  }

  function onPlayerStateChange(event) {

      alert("State Changed");

  }

ОТВЕТ: Оказывается, это потому, что я проводил локальные тесты, дох! Но смотрите другие возможные причины ниже.

1 Ответ

0 голосов
/ 18 мая 2012

Попробуйте использовать код ниже, у меня отлично работает

<div id="player"></div>
<script>
//Load player api asynchronously.
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'JW5meKfy3fY',
      playerVars:{'autoplay':1, 'rel':0, 'showinfo':0, 'egm':0, 'showsearch':0,},
      events: {
        'onReady': onPlayerReady,
        'onStateChange': onPlayerStateChange
      }
    });
}
function onPlayerReady(event) {
    event.target.playVideo();
}
function onPlayerStateChange(event,element) {
    //When the video has ended
    if (event.data == YT.PlayerState.ENDED) {
        //Get rid of the player
        element.style.display = "none";
    }
}

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