RTCRecorder:TypeError Recorder不是构造函数

时间:2019-08-30 20:01:47

标签: javascript node.js reactjs typescript

我正在尝试通过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浏览器中显示的内容是:

enter image description here 我猜测它与.d.ts文件有关,但我什至不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

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

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