我的应用程序允许人们录制语音消息。我用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中。