在暂停缓冲后,youtube播放器再次开始时是否有js回调?

时间:2012-05-10 18:10:25

标签: jquery youtube youtube-api youtube-javascript-api

我正试图弄清楚当玩家缓冲时是否有回调。

我现在正在使用onPlayerBuffering: function(){};当玩家开始缓冲时,但我似乎找不到任何相反的东西。

一旦播放器缓冲,onPlayerPlaying: function(){};似乎不起作用。

有人知道这是否可行?

此外,我正在使用Nirvana Tikku 's jquery-youtube pluggin,一个回调列表are herehere ...这些都没有完成这项工作吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我会建立一个定期检查缓冲是否继续的功能:

// set interval to something reasonable, 5 seconds?
var buffercheck = setInterval(bufferstatus, 5000);
function bufferstatus() {
  onPlayerBuffering: function(){ /* your code for a callback here */ },
}

答案 1 :(得分:0)

查看YouTube播放器API https://developers.google.com/youtube/js_api_reference#Events

您只需要收听onStateChange事件:

这是一个有效的演示:http://jsbin.com/izolo/edit

示例代码:

function handlePlayerStateChange (state) {
  switch (state) {
    case 1:
    case 3:
      // Video has begun playing/buffering
      videoContainer.cycle('pause');
      break;
    case 2:
    case 0:
      // Video has been paused/ended
      videoContainer.cycle('resume');
      break;
  }
}

function onYouTubePlayerReady(id){
  var player = $('#' + id)[0];
  if (player.addEventListener) {
    player.addEventListener('onStateChange', 'handlePlayerStateChange');
  }
  else {
    player.attachEvent('onStateChange', 'handlePlayerStateChange');
  }
}