首页 > 解决方案 > 回调使用 video.js 缓冲的百分比

问题描述

如果视频(使用 video.js 播放)被(比如说)缓冲 50%,我如何创建回调函数?

有 myPlayer.bufferedPercent() 方法,我在下面的代码中一直在使用它,它似乎有效,但回调显然会好得多。

function checkBuffered() {
    if (videoPlayer.bufferedPercent()*100 > 50){
      clearTimeout(bufferedTimeout);
      $("bufferingText").hide();
      $("instructionsText").show();
      $('#feedback_keyPress').html(videoPlayer.bufferedPercent()*100);
    }
    bufferedTimeout = setTimeout(checkBuffered, 1000 / FPS);
  }

我借了一把可能有帮助的小提琴

标签: javascriptcallbackvideo.js

解决方案


根据 video.js 的文档,播放器已经触发了该progress事件:

https://docs.videojs.com/player#event:progress

下载媒体时触发该progress事件。因此,它应该是这样的:

videoPlayer.on('progress', checkBuffered);

function checkBuffered () {
  var buffPerc = videoPlayer.bufferedPercent();
  // rest of your code without setTimeout/setInterval
}

推荐阅读