У меня есть следующий код, который записывает аудио с помощью MediaRecorder Web API.
Теперь при отправке записанного аудио на сервер мне нужно передать аудиоформат записанного аудио (либо wav, либо opus). Как узнать, какой аудиоформат записан в Chrome и Firefox?
Записанный 3-минутный звук в Chrome 72 имеет размер 1,6 МБ, тогда как записанный аудио в Firefox 55 с такой же длительностью имеет размер 3 МБ.
recordAudio() {
return new Promise(recorderResolve => {
navigator.mediaDevices
.getUserMedia({ audio: true })
.then(stream => {
const mediaRecorder = new MediaRecorder(stream);
const audioChunks = [];
mediaRecorder.addEventListener('dataavailable', event => {
audioChunks.push(event.data);
});
const isErrorOccured = false;
const start = () => {
mediaRecorder.start();
};
const stop = () => {
return new Promise(stopResolve => {
mediaRecorder.addEventListener('stop', () => {
const audioBlob = new Blob(audioChunks);
const audioUrl = URL.createObjectURL(audioBlob);
stopResolve({ audioBlob, audioUrl });
});
mediaRecorder.stop();
mediaRecorder.stream.getTracks().forEach(i => i.stop());
});
};
recorderResolve({ isErrorOccured, start, stop });
})
.catch(error => {
.......
});
});
}
Как узнать формат аудио, в котором был записан звук? Можно ли указать конкретный формат из wav и opus для записи?