[prg] Re[8]: проиграть wav файл средствами запроса через ajax
Приветствую всех.
А blob приходит не пустой?
У меня FileReader преобразует blob в ArrayBuffer:
var fileReader = new FileReader();
fileReader.onload = function(event) {
var data = event.target.result;
audioCtx.decodeAudioData(data, function(buffer) {
source.buffer = buffer;
});
source.start();
}
var audioCtx = new AudioContext();
var source = audioCtx.createBufferSource();
source.connect(audioCtx.destination);
...
// load in an audio track via XHR and decodeAudioData
request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'moz-blob';
request.onprogress = function(e) {
var d = request.response;
fileReader.readAsArrayBuffer(d);
}
}
...
Но существует особенность в методе AudioContext.audioCtx.decodeAudioData(),
который не работает с "голыми" фрагментами потокового аудио, а требует на
входе полноценного аудиофайла со всеми мета-данными для соответствующего
mime.
Как вариант: не использовать этот метод, а передавать данные в формате pcm,
8 bit, mono (в котором отсчет всегда равен одному байту и не требует
обработки ситуации с разрывами отсчетов) и формировать канальные данные для
AudioBuffer вручную.
Исходное сообщение > 2. для script processor node нужен arraybuffer
> я читал что можно с помощью filereader преобразовать blob в arraybuffer
> я сделал blob из xhr.response, и пытался преобразовать, но в итоге получил
> пустой массив
> пробовал и в load и в loadend событиях filereader
>