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

Буферизация аудио
Приветствую!

Возникла проблема с буферизацией аудио, точнее с ее попыткой ее индикации.

Подробнее.
Создаю объект Audio, указываю трек.
var player = new Audio();
player.setAttribute('src', 'http://www.codebasehero.com/files/music-player/demo/mix/1.mp3');

player.addEventListener('progress', function(){
var buffered = this.buffered.end(0);
console.log(buffered);
});

player.play();

Пример на jsfiddle, музыкальный отрывок 30 сек -- http://jsfiddle.net/yH8t5/1/

Cуть такова. При первом обращении файл загружается и буферизуется нормально и в консоль выводится время конца буферизованного фрагмента. Но если не дождаться полной загрузки и отключить аудио (не важно, каким способом, закрыть вкладку, грубо говоря), то при повторном обращение выдается ошибка:
Uncaught Error: IndexSizeError: DOM Exception 1

И нормальное выполнение события 'progress' будет только тогда, когда будет достигнут еще не буферизированный фрагмент.
В общем, я так себе представляю ситуацию.

Вопросов несколько: что я делаю не так и как узнать длину уже буферизированного фрагмента правильно?

Спасибо.
Ответить с цитированием