Отправляет email-рассылки с помощью сервиса Sendsay

За 2018-10-18

[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
>

   "i_chay" 2018-10-18 23:39:13 (#3587765)

[prg] Re[7]: проиграть wav файл средствами запроса через ajax

здравствуйте.

да, про moz-blob я читал, но тут есть две проблемы.

1. это работает только в firefox
2. для script processor node нужен arraybuffer
я читал что можно с помощью filereader преобразовать blob в arraybuffer
я сделал blob из xhr.response, и пытался преобразовать, но в итоге получил
пустой массив
пробовал и в load и в loadend событиях filereader

   2018-10-18 22:00:48 (#3587760)

[prg] Re[6]: проиграть wav файл средствами запроса через ajax

Приветствую всех.

На данный момент в официальной документации по XmlHttpRequest явно указано,
что для типов ответа arraybuffer и blob свойство response будет содержать
данные только в обработчике onload.
В других обработчиках, в т.ч. onprogress это свойство будет null.
Однако, в документации Mozilla, ссылку на которую я привел в предыдущем
сообщении сказано следующее:
Примечание: Начиная с Gecko 9.0, можно быть уверенным, что события progress
будут приходить для каждого пакета данных, включая последний пакет в
случаях,
когда он получен, и соединение закрыто прежде, чем будет создано событие
progress. В этом случае, событие progress автоматически создастся, когда
будет
получено событие load для этого пакета. Это позволяет следить за процессом
загрузки с помощью только событий progress.

Примечание: В Gecko 12.0, если событие progress вызвано с responseType
"moz-blob", значение ответа будет
Blob,
содержащим все данные, полученные на текущий момент.
То есть для Mozilla можно получать данные в onprogress так:
request = new XMLHttpRequest();
request.open('GET', url, true);
request.responseType = 'moz-blob';
request.onprogress = function(e) {
var data = request.response;
alert("size: " + data.size +", type: " + data.type);
}

Исходное сообщение > вот уже склько дней пытаюсь справится с задачей, не получается.
> я немогу получать данные в событии прогресса
>

   "i_chay" 2018-10-18 20:35:12 (#3587735)

[prg] Re[5]: проиграть wav файл средствами запроса через ajax

здравствуйте.

вот уже склько дней пытаюсь справится с задачей, не получается.
я немогу получать данные в событии прогресса

   2018-10-18 12:29:58 (#3587664)