У меня была та же проблема, и я использовал таймер, связанный с событием прогресса.Это взлом, но я не видел других способов сделать это.(Я проверял это на Chome 10 - Windows).
var video = document.getElementById('#example-video-element');
var timer = 0;
video.addEventListener('progress', function (e) {
if (this.buffered.length > 0) {
if (timer != 0) {
clearTimeout(timer);
}
timer = setTimeout(function () {
if(parseInt(video.buffered.end() / video.duration * 100) == 100) {
// video has loaded....
};
}, 1500);
}
}, false);
Это похоже на тип подхода, о котором вы думали, но подумал, что я опубликую пример для тех анонимных пользователей, которые могут искать быстрый пример кода = p
GJ