我正在尝试使用 MediaRecorder 库在我的 React 应用程序中使用 TypeScript 录制音频,如下面的代码所示,并尝试将此文件发送到 WhatsappBusinessCloudApi api,但它返回以下错误:
{ 代码:131053, title: '上传的音频文件,mimetype为audio/ogg; codecs=opus,但是在处理时它的类型为 application/octet-stream。请选择不同的文件。 }
这是我的代码:
const startRecording = async () => {
const stream = await navigator.mediaDevices.getUserMedia({ audio: true });
var options = {
audioBitsPerSecond: 42666,
mimeType: 'audio/webm; codecs=opus',
};
const mediaRecorder = new MediaRecorder(stream, options);
mediaRecorderRef.current = mediaRecorder;
mediaRecorder.start();
setIsRecording(true);
setRecordingTime(0);
mediaRecorder.ondataavailable = (event) => {
audioChunksRef.current.push(event.data);
};
mediaRecorder.onstop = () => {
const audioBlob = new Blob(audioChunksRef.current, { type: 'audio/ogg' });
const audioUrl = URL.createObjectURL(audioBlob);
console.log('🚀 ~ startRecording ~ audioUrl:', audioUrl);
setAudioUrl(audioUrl);
setFiles((prevFiles) => [...prevFiles, new File([audioBlob], 'recording.ogg', { type: 'audio/ogg' })]);
audioChunksRef.current = [];
clearInterval(timerRef.current!);
};
timerRef.current = window.setInterval(() => {
setRecordingTime((prevTime) => prevTime + 1);
}, 1000);
};
朋友这个案子是怎么解决的?我正在经历同样的问题。