2012-01-21 7 views
6

я следующее видео погруженного в WordPressПроверьте YouTube воспроизведения видео и запустить скрипт

<iframe id="video" width="640" height="360" src="http://www.youtube.com/embed/xxxxxx?enablejsapi=1" frameborder="0" allowfullscreen></iframe> 

И это внутри слайдера SlideDeck, который я хочу остановиться, когда кто-то нажимает на видео. Я не могу понять, как получить эту строку кода

self.pauseAutoPlay = true; 

для запуска при воспроизведении видео.

Мне отчаянно нужна помощь.

Редактировать: Поскольку я не являюсь конечным пользователем. Мне нужно что-то, что будет работать со встроенным кодом по умолчанию с YouTube.

ответ

21

Вам необходимо использовать API iFrame YouTube. Имейте в виду, я знаю только простые основы Javascript и так далее, поэтому это потенциально может быть намного более эффективным.

Вы их вставлять IFRAME как обычно

<iframe id="player" width="640" height="360" src="http://www.youtube.com/embed/TJ2X4dFhAC0?enablejsapi" frameborder="0" allowfullscreen></iframe> 

Но с парой изменений. Он должен иметь идентификатор, «игрок», и вам нужно добавить ?enablejsapi в конец исходного URI.

Вам потребуется выполнить следующий скрипт для загрузки API JS, а также Creat игрока

// 2. This code loads the IFrame Player API code 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); 

    // 3. This function creates an <iframe> (and YouTube player) 
    // after the API code downloads. 
    var player; 
    function onYouTubePlayerAPIReady() { 
    player = new YT.Player('player', { 
     height: '390', 
     width: '640', 
     videoId: 'u1zgFlCw8Aw', 
     events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 
    }); 
    } 

Обратите внимание, что new YT.Player('player' должна соответствовать вашему IFrame ID и videoId: 'u1zgFlCw8Aw' должны соответствовать СРК URI.

После этого вы сможете запускать скрипты как

var myPlayerState; 
     function onPlayerStateChange(event) { 
     if (event.data == YT.PlayerState.PLAYING && !done) { 
      // DO THIS 
     } 
     myPlayerState = event.data; 
     } 

if (myPlayerState == 1){ 
    // PAUSE SLIDER 
} 
+0

не работает для меня :( – nicogaldo

+4

@nicogaldo Этот ответ составляет около 4 лет на этом этапе. Возможно, вам захочется попробовать немного больше. Попробуйте взглянуть на этот ответ http: // stackoverflow .com/а/24040526/142410 –

8

Вам нужно вставлять YouTube непосредственно с вспышкой:

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

после этого, вы можете использовать YouTube JavaScript API.

Ваш код может быть что-то вроде этого:

<script type="text/javascript" src="swfobject.js"></script>  
<div id="ytapiplayer"> 
You need Flash player 8+ and JavaScript enabled to view this video. 
</div> 

<script type="text/javascript"> 

var params = { allowScriptAccess: "always" }; 
var atts = { id: "myytplayer" }; 
swfobject.embedSWF("http://www.youtube.com/v/VIDEO_ID?enablejsapi=1&playerapiid=ytplayer&version=3", 
        "ytapiplayer", "425", "356", "8", null, null, params, atts); 


var player; 

function onytplayerStateChange(newState) { 
    if (newState == 1) 
     callPlay(); 
    else if (newState == 2) 
     callPause(); 
} 

function callPlay() { 
    //video is play 
} 

function callPause() { 
    //video is paused 
} 

</script> 

P.S. swfobject.js soure here

+0

Спасибо за предложение, но это, кажется, не сотрудничать с WordPress действительно хорошо. Я также надеюсь на решение, которое не требует обходного пути, поскольку я не являюсь конечным пользователем. Мне нужно что-то, что будет работать со встроенным кодом по умолчанию с YouTube. –

+0

Вы можете попробовать: [iframe API] (http://code.google.com/apis/youtube/iframe_api_reference.html#Events). Но у меня нет опыта в том, что – neworld

Смежные вопросы