Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работа с youtube api (https://javascript.ru/forum/misc/45721-rabota-s-youtube-api.html)

dikucher 13.03.2014 13:54

Работа с youtube api
 
Мои шаги ( все по документации )
Добавляю видео с параметром ?enablejsapi=1

<iframe id="myvideo" width="450" height="253" src="//www.youtube.com/embed/uT3SBzmDxGk?enablejsapi=1" frameborder="0" allowfullscreen></iframe>


Документация говорит:
После перехода проигрывателя в состояние готовности он вызывает функцию onYouTubePlayerReady.
Получить ссылку на этот проигрыватель можно через getElementById(). После получения объекта можно выполнять запросы к API.

ОК, вызываем функцию

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


Сразу вопрос, нужно ли что то вставлять вместо параметра playerId ?
Так как я это не понял, то я этот параметр убрал

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


Ну и собственно вызвов функции воспроизведения

function play() {
  if (ytplayer) {
    ytplayer.playVideo();
  }
}


и соответсвенно размещаем в html коде ссылку, по которой должно запускать видео

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


все это выложил на http://jsfiddle.net/eVut3/

dikucher 13.03.2014 16:26

на css-triks был расмотрен свой способ. Когда я натыкался на него неделю назад - он работал. Но теперь нет.
Может тут дело в youtube ?

melky 13.03.2014 19:38

Да, раньше работало.. сейчас перестало. Но мне помнится, тогда приходилось загружать через Flash , а в этом случае - уже iframe

такс

http://jsbin.com/qoyujoho/2/edit

чего сделал:
  1. Загрузил iframe api
    <script src="http://www.youtube.com/iframe_api"></script>
    
  2. Как только API загрузится, исполнился функция onYouTubeIframeAPIReady. В ней я создаю экземпляр плеера
    function onYouTubeIframeAPIReady() {
      ytplayer = new YT.Player('myvideo');
    }
    

Ну а дальше плеер можно проиграть через
ytplayer.playVideo();


Часовой пояс GMT +3, время: 16:17.