挂钩点击嵌入式YouTube播放器内的事件

Ale*_*ird 14 html javascript jquery youtube-api

我想stopSlide在有人点击嵌入式YouTube视频上的"播放"按钮时运行一个调用的函数.甚至当他们点击嵌入式视频内的任何地方时运行该功能对我来说也能正常工作.

我怎样才能做到这一点?

Jak*_*cil 10

有一个提供事件回调的YouTube JavaScript API.

遗憾的是,没有办法直接检测点击事件(至少我不知道任何事件).但是,您可以检测可以使用的播放器状态的变化onStateChange.

首先,您需要通过使用特殊URL嵌入JS API来启用播放器中的JS API:

http://www.youtube.com/v/VIDEO_ID?version=3&enablejsapi=1
Run Code Online (Sandbox Code Playgroud)

然后你需要创建一个事件处理函数:

function player_state_changed(state) {
  /* This event is fired whenever the player's 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');
  }

}
Run Code Online (Sandbox Code Playgroud)

最后,您需要确保在电影状态发生变化时调用处理程序:

document.getElementById('MY-PLAYER-ID').addEventListener('onStateChange', 'player_state_changed');
Run Code Online (Sandbox Code Playgroud)


小智 9

可能会有帮助...根据您的要求编辑 http://jsfiddle.net/masiha/4mEDR/

  • 它没有提醒我.为什么? (2认同)