Объединить два аудио / веб-блоба - PullRequest
0 голосов
/ 09 января 2020

мое приложение позволяет людям записывать голосовые сообщения. Я делаю это с реакции-ми 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...