Подтвердить что ты не робот

Перехват события click внутри встроенного проигрывателя YouTube

Я хочу запустить функцию под названием stopSlide, когда кто-то нажимает кнопку "играть" на встроенном видео YouTube. Или даже заставить функцию запускать, когда они нажимают где-нибудь внутри встроенного видео, будет работать отлично для меня прямо сейчас.

Как я могу это сделать?

4b9b3361

Ответ 1

Существует JavaScript API JavaScript, который обеспечивает обратные вызовы событий.

К сожалению, нет возможности напрямую обнаружить событие click (по крайней мере, я не знаю). Однако вы можете обнаружить изменения в состоянии плеера, для которых вы можете использовать onStateChange.

Во-первых, вам нужно включить JS API в проигрыватель, вставив его с помощью специального URL-адреса:

http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1

Затем вам нужно создать функцию обработчика событий:

function player_state_changed(state) {
  /* This event is fired whenever the player state changes.
     Possible values are:
     - unstarted (-1)
     - ended (0)
     - playing (1)
     - paused (2) 
     - buffering (3)
     - video cued (5). 
     When the SWF is first loaded it will broadcast an unstarted (-1) event.
     When the video is cued and ready to play it will broadcast a video cued event (5).
  */

  if (state == 1 || state == 2) {
    alert('the "play" button *might* have been clicked');
  }

}

Наконец, вам нужно убедиться, что обработчик получает вызов при каждом изменении состояния фильма:

document.getElementById('MY-PLAYER-ID').addEventListener('onStateChange', 'player_state_changed');

Ответ 3

Я попытался использовать предложения выше, но не смог. он не может работать с ползунком таймера. см. пример Google для автоматического слайдера, они использовали всплывающее окно для видео. слайдер google со встроенным видео

Ответ 4

Вам нужно просто зарегистрировать прослушиватель событий на плеере, чтобы вызвать функцию stopSlide. Следующая строка кода должна сделать это для вас (сначала вам нужно заменить две "строки" на соответствующие значения - идентификатор встроенного проигрывателя и имя функции, которую вы хотите вызвать, например: "stopSlide" ):

document.getElementById("_idOfEmbeddedPlayerElement_").addEventListener("onStateChange", "_nameOfFunctionToCall_");`

Ответ 5

Насколько мне известно, вы не можете обнаружить щелчок внутри iframe, или вы не можете вызвать любое событие щелчка внутри iframe Мое решение состоит в том, чтобы поместить кнопку внутри Iframe, установить ее свойства прозрачными (непрозрачность), внутри этой кнопки вы можете вызвать функцию щелчка, используя метод playmethod и метод pause, вы можете включить автозапуск