Показать сообщение отдельно
  #4 (permalink)  
Старый 11.12.2012, 12:22
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

Путем рассматривания дебрей вконтактовского HTLM5-плеера родилось вот что

var player = new Audio();
player.setAttribute('src', 'http://dl.dropbox.com/u/95730813/1.mp3');
player.load();

var time = 276.331;

var onProgress = function(){
   var buffered;
   try{
       buffered = (Math.floor(this.buffered.end(0) * 1000) / 1000) || 0;
   }catch(e){}
   if(time && Math.abs(time - buffered) < 0.1){
       console.log('Buffered: 100%');
       this.removeEventListener('progress', onProgress);
   }else{
       var percent = Math.ceil(buffered / time * 100);
       
       percent = Math.min(100, Math.max(0, percent));
       if(!isNaN(percent)){
           console.log('Buffered: '+ percent +'%');
       }
    }
}

player.addEventListener('progress', onProgress);

$(document).ready(function(){
    player.play();
});​

http://jsfiddle.net/yH8t5/3/

Адовый костыль, т.к. нужно знать длину трека изначально. В моем конкретном случае это не критично, но костыль.

Еще хотелось бы прочитать мнение более умных людей, чем я, как решать эту проблему
Ответить с цитированием