Отправляет wav
upstream, POST / upload, закодированный как base64, вместе с метаданными.Сервер должен будет декодировать data
и сохранить его в файловой системе:
class Audio {
static createPayload(audioBlob) {
return new Promise(function (resolve, reject) {
const r = new FileReader();
r.readAsDataURL(audioBlob);
r.onloadend = function () {
resolve(JSON.stringify({
filename: `${new Date().toISOString()}.wav`,
mimeType: 'audio/wav',
transferEncoding: 'base64',
data: r.result
}));
};
});
}
}
stopRecording(async function (audioBlob) {
const payload = await Audio.createPayload(audioBlob);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/upload');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.send(payload);
}, false);