我正在尝试通过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浏览器中显示的是:
我猜想它与.d.ts文件有关,但我什至不知道从哪里开始。
最佳答案
The RecordRTC documentation表明recorderType
需要一个类构造函数,但是您的示例将其设置为字符串。您可以将其设置为StereoAudioRecorder的类构造函数,如下所示:
RecordRTC(
stream,
{
recorderType: StereoAudioRecorder, // <-------- class constructor not string
type: 'audio',
mimeType: 'audio/wav'
},
);