我正在尝试通过React应用从浏览器记录wav并将其发送到我的nodeJS API。在html5原型示例中,这工作正常。但是现在我将其移至React / Typescript。我对打字稿还很陌生,所以一切都有些古怪。

我正在使用RecordRTC,到目前为止的代码是:

声明文件,因为recordRTC没有@ types / recordrtc:

declare module "recordrtc";


实际代码:

startRecording() {
        this.record = true
        this.captureUserMedia((stream: any) => {
            this.recordAudio = RecordRTC(stream, { recorderType: 'StereoAudioRecorder', type: 'audio', mimeType: 'audio/wav' });
            this.recordAudio.startRecording();
        });
    }



当我调用startRecording时,得到以下信息:

Uncaught TypeError: Recorder is not a constructor
    at initRecorder (RecordRTC.js:87)
    at Object.startRecording (RecordRTC.js:70)
    at PracticeScreen.tsx:143


chrome浏览器中显示的是:

javascript - RTCRecorder:TypeError Recorder不是构造函数-LMLPHP
我猜想它与.d.ts文件有关,但我什至不知道从哪里开始。

最佳答案

The RecordRTC documentation表明recorderType需要一个类构造函数,但是您的示例将其设置为字符串。您可以将其设置为StereoAudioRecorder的类构造函数,如下所示:

RecordRTC(
  stream,
  {
    recorderType: StereoAudioRecorder,   // <-------- class constructor not string
    type: 'audio',
    mimeType: 'audio/wav'
  },
);

09-25 19:42