合并两个音频/ WebB Blob

时间:2020-01-09 18:07:49

标签: javascript reactjs audio

我的应用程序允许人们录制语音消息。我用react-mic做到这一点。

输出文件是网络文件,大小非常合理。我将它们上传到cloudinary。

我有一个名为crunker的音频合并-这是一个npm软件包。

我要将两个以前录制的音频webms合并到一个文件中,然后上传它们。

唯一的问题是-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中。

0 个答案:

没有答案
相关问题