如何在不采用应用程序/八位字节流格式的情况下录制音频,最好是react ts中的ogg或mp3

问题描述 投票:0回答:1

我正在尝试使用 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);
    };
reactjs typescript mediarecorder ogg whatsapp-cloud-api
1个回答
-2
投票

朋友这个案子是怎么解决的?我正在经历同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.