Некорректное сохранение аудиозаписи в Electron
Есть приложение на Electron, в котором пробую сначала записать аудио с микрофона а затем сохранить на локальный ПК. Запись проходит штатно, сохранение идет штатными средствами но вот сохраненный файл уже не воспроизводиться, код записи preload.js:
function record_() {
const recordAudio = () =>
new Promise(async resolve => {
try{
let stream = await navigator.mediaDevices.getUserMedia({ audio: true });
let mediaRecorder = new MediaRecorder(stream);
let audioChunks = [];
mediaRecorder.addEventListener('dataavailable', event => {
audioChunks.push(event.data);
});
const start = () => {
audioChunks = [];
mediaRecorder.start();
};
const stop = () =>
new Promise(resolve => {
mediaRecorder.addEventListener('stop', (e) => {
if(audioChunks.length){
const audioBlob = new Blob(audioChunks,{type : 'audio/wav'});
audioChunks = [];
const audioUrl = URL.createObjectURL(audioBlob);
let audio = new Audio(audioUrl);
audio.setAttribute('controls','controls');
console.log('stop')
savedAudioMessagesContainer.appendChild(audio);
const play = () => audio.play();
resolve({ audioChunks, audioBlob, audioUrl, play });
}
});
mediaRecorder.stop();
});
resolve({ start, stop });
}catch(e){
console.error('error not connected microphone');
console.error(e);
}
});
const sleep = time => new Promise(resolve => setTimeout(resolve, time));
const recordButton = document.querySelector('#record');
const stopButton = document.querySelector('#stop');
const playButton = document.querySelector('#play');
const saveButton = document.querySelector('#save');
let savedAudioMessagesContainer = document.querySelector('#audioBox')
let recorder;
let audio;
recordButton.addEventListener('click', async () => {
recordButton.setAttribute('disabled', true);
stopButton.removeAttribute('disabled');
playButton.setAttribute('disabled', true);
saveButton.setAttribute('disabled', true);
if (!recorder) {
console.log("!recorder");
recorder = await recordAudio();
}
recorder.start();
});
stopButton.addEventListener('click', async () => {
recordButton.removeAttribute('disabled');
stopButton.setAttribute('disabled', true);
playButton.removeAttribute('disabled');
saveButton.removeAttribute('disabled');
audio = await recorder.stop();
});
playButton.addEventListener('click', () => {
audio.play();
});
}
Далее обычная загрузка, все по умолчанию, появляется окно с выбором директории, выбираю сохраняю открываю файл, ошибка, aimp пишет Message: Decoder was not found for this format. (формат wav)