Запись звука дело не хитрое. Простейший пример:
navigator.mediaDevices.getUserMedia({ audio: true}).then(function(stream) {
var record = new MediaRecorder(stream);
var binary = []; // Переменная для записи сырых бинарных данных
// Обработчик для записи сырых бинарных данных:
record.addEventListener('dataavailable', function(event) {
binary.push(event.data);
});
record.start(); // Старт записи
// Стоп записи через 5 сек:
setTimeout(function() { record.stop(); }, 5000);
// Обработчик для получения Data URL:
record.addEventListener('stop', async function() {
var blob = new Blob(binary, { type: 'audio/wav' });
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function() {
console.log(reader.result);
var a = document.createElement('a');
a.href = reader.result;
a.target = '_blank';
a.download = 'test.wav';
a.click();
};
});
});
Если нужен именно mp3, то используйте какую-нибудь готовую библиотеку, типа этого:
https://github.com/Audior/Recordmp3js