「バッファリングされた」イベントをバインドできますが、(少なくともChromeでは)最後の「バッファリングされた」イベントを呼び出さないことを除いて、これは正常に機能します(つまり、90%... 94%... 98%を検出します。 ..しかし、100%を呼び出すことはありません)。
注:jQueryの最近のバージョンでは、.attr()ではなく.prop()を使用する必要があります
これを回避するために、setInterval()を使用して500ミリ秒ごとにバッファをチェックしました(ここで、$ html5Videoは<video>
要素です:
var videoDuration = $html5Video.attr('duration');
var updateProgressBar = function(){
if ($html5Video.attr('readyState')) {
var buffered = $html5Video.attr("buffered").end(0);
var percent = 100 * buffered / videoDuration;
//Your code here
//If finished buffering buffering quit calling it
if (buffered >= videoDuration) {
clearInterval(this.watchBuffer);
}
}
};
var watchBuffer = setInterval(updateProgressBar, 500);