HTML-звук не может установить currentTime

Я использую Chrome. В моей консоли инструментов разработчика я попробовал следующее:

введите описание изображения здесь

Все работает так, как ожидалось, кроме последней строки. Почему я не могу установить currentTime на нем?

Кроме того, в общем, я считаю, что вся эта вещь HTML5 Audio не очень надежна. Есть ли надежная обертка javascript, которая возвращает Flash?

Ответ 1

Вам нужно сделать что-то вроде этого (если вы используете jQuery)

$('#elem_audio').bind('canplay', function() {
  this.currentTime = 10;
});

или в Javascript

var aud = document.getElementById("elem_audio");
aud.oncanplay = function() {
    aud.currentTime = 10;
};

Причина этой настройки - убедиться, что звук готов к воспроизведению.

Ответ 2

Почему я не могу установить currentTime на него?

Невозможно воспроизвести currentTime с 0 после установки на 10. Продолжительность 18.mp3 меньше 10?

var request = new XMLHttpRequest();
request.open("GET", "/assets/audio/18.mp3", true);
request.responseType = "blob";    
request.onload = function() {
  if (this.status == 200) {
    var audio = new Audio(URL.createObjectURL(this.response));
    audio.load();
    audio.currentTime = 10;
    audio.play();
  }
}
request.send();

jsfiddle http://jsfiddle.net/Lg5L4qso/3/

Ответ 3

Моя догадка заключается в том, что "10" длиннее длины mp3.

Но это записывает длину mp3 вместо '0'.

Что ваша версия Chrome?

Ответ 4

У меня была та же проблема, и причиной было отсутствие заголовков в mp3 файле, например:

Content-Length, Content-Range, Content-Type