jQueryを使用してプレーヤーをフェードインする前に、ビデオが完全にダウンロードされているかどうかを比較しようとしています。これを行うには、setInterval()関数を使用してループを使用し、ビデオ属性'buffered.end(0)'と'duration'を比較していますが、最初の属性には小数点以下の桁数が多いため、両方の長さが異なります( 3)2番目のものより:
25.946847656 > 25.946847
プレーヤーを表示する前に、ビデオが完全にダウンロードされているかどうかを確認する方法はありますか?
これが私が現時点で持っているものです:
var playerObject = {
init : function(obj) {
"use strict";
if (obj.length > 0) {
if (obj.length > 1) {
jQuery.each(obj, function() {
playerObject.start($(this));
});
} else {
playerObject.start(obj);
}
}
},
start : function(obj) {
"use strict";
var thisTime = window.setInterval(function() {
if (obj[0].buffered.end(0) === obj[0].duration) {
window.clearInterval(thisTime);
obj.fadeIn(200);
playerObject.create(obj);
}
}, 1000);
},
create : function(obj) {
"use strict";
obj.live('click', function() {
var thisVideo = $(this)[0];
if (thisVideo.paused === false) {
thisVideo.pause();
} else {
thisVideo.play();
}
});
playerObject.endVideo(obj);
},
endVideo : function(obj) {
"use strict";
var thisTime = window.setInterval(function() {
if (obj[0].ended == true) {
window.clearInterval(thisTime);
obj.fadeOut(200);
}
}, 1000);
}
};
$(function() {
"use strict";
playerObject.init($('.player'));
});