Youtube Javascript API play(); не работает.. что я делаю не так?

Я играю с Javascript API YouTube. Я создал тестовую страницу в своей локальной среде, но функция воспроизведения не работает. Видео загружается, и я могу нажать кнопку воспроизведения на экране видео, но моя ссылка «воспроизведение» не работает. Может кто-нибудь сказать мне, что я делаю неправильно??

Я следил за этим: http://code.google.com/apis/youtube/js_api_reference.html

<html>
  <head>
    <script type="text/javascript" src="public/javascripts/swfobject.js"></script> 
  </head>

  <body>

    <div id="ytapiplayer">
      You will need Flash 8 or better to view this content.
    </div>

    <script type="text/javascript">
      var params = { allowScriptAccess: "always" };
      var atts = { id: "myytplayer" };
      swfobject.embedSWF("http://www.youtube.com/v/OQSNhk5ICTI&enablejsapi=1&playerapiid=ytplayer", "ytapiplayer", "425", "365", "8", null, null, params, atts);

      function onYouTubePlayerReady(playerId) {
        ytplayer = document.getElementById("myytplayer");
      }

      function play() {
        if (ytplayer) {
          ytplayer.playVideo();
        }
      }
    </script>

    <a href="javascript:void(0);" onclick="play();">Play</a>

  </body>
</html>

person thedeepfield    schedule 08.01.2011    source источник
comment
Ваш точный код отлично работал у меня в IE, Chrome и Firefox. Если вы используете один из них, добавьте такую ​​отладку: function play() { alert(typeof ytplayer); if (ytplayer) { alert(ytplayer.playVideo); ytplayer.playVideo(); } } какие оповещения вы видите?   -  person Shadow Wizard Wearing Mask V2    schedule 08.01.2011


Ответы (2)


Это не будет работать в локальной среде. Вы можете скачать, например. Web Developer Express, который включает в себя крошечный веб-сервер, и вы можете запустить его на локальном хосте.

person Eric Fortis    schedule 08.01.2011
comment
Протестировано на локальном хосте, и ваш код работает, но файл://... без веб-сервера не работает. - person Eric Fortis; 08.01.2011

Ваш идентификатор div ytapiplayer не myytplayer
Итак, измените функцию onYouTubePlayerReady как

 function onYouTubePlayerReady(playerId) {
    //ytplayer = document.getElementById("myytplayer");
    ytplayer = document.getElementById("ytapiplayer");
  }

View the fiddle, чтобы увидеть, как работает код.

person naveen    schedule 08.01.2011
comment
Код в этой скрипте у меня не работает - кнопка воспроизведения не воспроизводит видео. - person nnyby; 19.09.2014
comment
@nnyby: я проверю и дам тебе знать. Это работало. некоторые изменения в API, возможно. - person naveen; 24.09.2014