Я использую библиотеку react-media-recorder, и мне нужно отправить голос в виде файла на сервер. а бэкэнд поддерживает только mp3 и ogg как мне это сделать? Мне действительно нужна помощь, и я буду признателен за помощь
const { startRecording, stopRecording, mediaBlobUrl } = useReactMediaRecorder(
{
audio: true,
blobPropertyBag: { type: "audio/mp3" },
}
);
React.useEffect(() => {
async function uploadVoice() {
const audioBlob = await fetch(mediaBlobUrl).then((r) => r.blob());
const audiofile = new File([audioBlob], "audiofile.mp3", {
type: "audio/mp3",
});
const formData = new FormData();
formData.append("file", audiofile);
await axios.post(
endPoint,
formData,
{
"content-type": "multipart/form-data",
}
);
}
if (mediaBlobUrl) {
uploadVice();
}
}, [mediaBlobUrl]);
моя реализация не работает, и бэкэнд не примет это
Я также изменил mp3
на ogg
, и это тоже не сработало.
Как я должен загрузить большой двоичный объект на сервер?
Тип mime должен быть audio/mpeg
для файлов .mp3, а не audio/mp3
.
Вы можете отправить файл BLOB-объекта напрямую const formData = new FormData(); formData.append("файл", audioBlob); и обрабатывать файл на стороне сервера