мое приложение позволяет людям записывать голосовые сообщения. Я делаю это с реакции-ми c.
Выходные файлы являются веб-и очень разумного размера. Я загружаю их в облачный.
У меня есть аудио слияние под названием crunker - это пакет npm.
Я объединяю два ранее записанных аудио вебмаза в один файл и загружаю их.
Единственная проблема - Crunker берет небольшие файлы и объединяет их в огромный wav-файл.
В десять раз больше необходимого размера. Кто-нибудь может указать мне направление, где я мог бы написать это сам и выпустить что-то, что также является WebM?
React.useEffect(() => {
if (crunkerRef.current) {
let audio = new Crunker();
audio
.fetchAudio(oldAudioFileUrl, newAudioFileUrl)
.then(buffers => audio.mergeAudio(buffers))
.then(merged => audio.export(merged, 'audio/webm'))
.then(output => {
const file_reader = new FileReader();
const dateOfRecording = Date.now();
file_reader.readAsDataURL(output.blob);
file_reader.onloadend = async function() {
const base64_string = file_reader.result;
await uploadAudio(base64_string, author, chatId, dateOfRecording);
return base64_string;
};
setConsolidatedAudioFileName(`${chatId}-${dateOfRecording}-${author}.webm`);
setTimeout(() => setConsolidationDone(true), 1500);
})
.catch(error => {
throw new Error(error);
});
}
}, [chatId, author, newAudioFileUrl, oldAudioFileUrl]);
Это то, что я делаю. Я стремлюсь написать собственную функцию, которая не превращается в огромный файл и остается в WebM.