Javascript 如何记录屏幕+;音频&x2B;带录音带的麦克风

Javascript 如何记录屏幕+;音频&x2B;带录音带的麦克风,javascript,recordrtc,Javascript,Recordrtc,我正在进行一个项目,我需要用户能够录制屏幕、音频和麦克风。目前我只能让它识别屏幕和音频 首先,我捕获屏幕和其中的音频,并将其保存到一个变量中。然后我捕获这个变量来显示视频组件 invokeGetDisplayMedia(成功,错误){ 让displaymediastreamconstraints={ 视频:{ displaySurface:'监视器',//监视器,窗口,应用程序,浏览器 逻辑表面:对, 光标:“始终”//从不,始终,运动 } }; //上述约束尚不受支持 //这就是为什么要推翻

我正在进行一个项目,我需要用户能够录制屏幕、音频和麦克风。目前我只能让它识别屏幕和音频

首先,我捕获屏幕和其中的音频,并将其保存到一个变量中。然后我捕获这个变量来显示视频组件

invokeGetDisplayMedia(成功,错误){
让displaymediastreamconstraints={
视频:{
displaySurface:'监视器',//监视器,窗口,应用程序,浏览器
逻辑表面:对,
光标:“始终”//从不,始终,运动
}
};
//上述约束尚不受支持
//这就是为什么要推翻他们
displaymediastreamconstraints={
视频:没错,
音频:正确
};
if(navigator.mediaDevices.getDisplayMedia){
navigator.mediaDevices.getDisplayMedia(displaymediastreamconstraints)。然后(成功)。捕获(错误);
}
否则{
getDisplayMedia(displaymediastreamconstraints)。然后(成功)。捕获(错误);
}
},
捕获屏幕(回调){
此.invokeGetDisplayMedia((屏幕)=>{
此.addStreamStopListener(屏幕,()=>{
//
});
回调(屏幕);
},函数(错误){
控制台错误(error);
警报('无法捕获您的屏幕。请检查控制台日志。\n'+错误);
});
},
startRecording(){
此.captureScreen(屏幕=>{
this.audioStream=音频
console.log(音频)
this.video=this.$refs.videoScreen
this.video.srcObject=屏幕;
this.recorder=RecordRTC(屏幕{
键入:“视频”
});
这个.recorder.startRecording();
//停止录制时释放屏幕
this.recorder.screen=屏幕;
this.videoStart=true;
});

},
我通过增加一个从麦克风捕获音频的功能来修复它

captureAudio(success, error) {
           let displayuserstreamconstraints = {
          audio:true
        };
        if (navigator.mediaDevices.getUserMedia) {
          navigator.mediaDevices.getUserMedia(displayuserstreamconstraints).then(success).catch(error);
         
        }
        else {
          navigator.getUserMedia(displayuserstreamconstraints).then(success).catch(error);
       
        }
        },
以及在startRecording方法中添加函数

startRecording() {
        this.captureAudio((audio) => {
        this.captureScreen(screen=>{
          this.video=this.$refs.videoScreen
          this.audioStream=audio
          this.video.srcObject = screen;
          this.recorder = RecordRTC(screen, {
            type: 'video'
          });
          this.recorder.startRecording();
          // release screen on stopRecording
          this.recorder.screen = screen;
          this.videoStart = true;
        });
        })
      },
   stopRecordingCallback() {
    this.video.src = this.video.srcObject = null;
    this.video=this.$refs.videoScreen
    this.video.src = URL.createObjectURL(this.recorder.getBlob());
    this.recorder.screen.stop();
    this.audioStream.stop();
    this.recorder.destroy();
    this.recorder = null;
    
  },
以及在stopRecording方法中添加一个函数

startRecording() {
        this.captureAudio((audio) => {
        this.captureScreen(screen=>{
          this.video=this.$refs.videoScreen
          this.audioStream=audio
          this.video.srcObject = screen;
          this.recorder = RecordRTC(screen, {
            type: 'video'
          });
          this.recorder.startRecording();
          // release screen on stopRecording
          this.recorder.screen = screen;
          this.videoStart = true;
        });
        })
      },
   stopRecordingCallback() {
    this.video.src = this.video.srcObject = null;
    this.video=this.$refs.videoScreen
    this.video.src = URL.createObjectURL(this.recorder.getBlob());
    this.recorder.screen.stop();
    this.audioStream.stop();
    this.recorder.destroy();
    this.recorder = null;
    
  },

你用这个图书馆吗?这似乎解释得很好。也许你能说得更详细些,你的问题在哪里?是的,我知道。我能够捕捉屏幕和声音,但我不知道如何捕捉麦克风。任何人都可以帮我。我能帮上忙。谢谢