如何使用 RecordRTC 录制屏幕+音频+麦克风

大卫·阿斯图里扎加·奥里亚斯

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

首先,我正在捕获屏幕和其中的音频并将其保存到变量中。然后我捕获该变量以显示视频组件。

invokeGetDisplayMedia(success, error) {
        let displaymediastreamconstraints = {
          video: {
            displaySurface: 'monitor', // monitor, window, application, browser
            logicalSurface: true,
            cursor: 'always' // never, always, motion
          }
        };
        // above constraints are NOT supported YET
        // that's why overridnig them
        displaymediastreamconstraints = {
          video: true,
          audio:true
        };
        if (navigator.mediaDevices.getDisplayMedia) {
          navigator.mediaDevices.getDisplayMedia(displaymediastreamconstraints).then(success).catch(error);
        }
        else {
          navigator.getDisplayMedia(displaymediastreamconstraints).then(success).catch(error);
        }
      },
      captureScreen(callback) {
        this.invokeGetDisplayMedia((screen) => {
          this.addStreamStopListener(screen, () => {
            //
          });
          callback(screen);
        }, function (error) {
          console.error(error);
          alert('Unable to capture your screen. Please check console logs.\n' + error);
        });
      },
       startRecording() {
     
    this.captureScreen(screen=>{
        this.audioStream = audio
        console.log(audio)
      this.video=this.$refs.videoScreen
      this.video.srcObject = screen;
      this.recorder = RecordRTC(screen, {
        type: 'video'
      });
      this.recorder.startRecording();
      // release screen on stopRecording
      this.recorder.screen = 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;
        });
        })
      },

并在stopRecording方法中添加一个函数

   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;
    
  },

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用 XVidCap 录制内部音频?(不带麦克风)

如何通过蓝牙麦克风录制音频

Centos 7.1:如何从音频输入(不是麦克风)录制

使用Avconv录制桌面和麦克风音频

如何录制网络/浏览器音频输出(不是麦克风音频)

在Android中录制音频时如何调整麦克风灵敏度

如何对从javascript中的麦克风实时录制的音频进行下采样?

如何保存麦克风音频输入?

使用带有HTML5的用户麦克风录制音频

屏幕录制软件如何同时录制本地人(在麦克风上)和远程人(在扬声器上)的通话音频?

如何从麦克风录制声音?

发送录制的音频作为麦克风输入

如何使用 javascript 从我的麦克风获取音频?

我的应用程序正在询问“麦克风:录制音频”权限,甚至认为我没有使用它

使用FFMPEG的音频流中的麦克风问题

如何验证我的麦克风输入是否无效或尚未检测到ubuntu?我可以听音乐但不能录制音频

录制来自麦克风输入的现场音频并同时保存

Swift3麦克风音频输入-无需录制即可播放

mediaDevices.getUserMedia,音频播放完毕后开始麦克风录制,Safari问题

USB 实时摄像头麦克风无法录制音频

如何实时从麦克风或从iOS中保存的音频文件中获取原始音频帧?

如何使用python和ffmpeg或类似格式读取实时麦克风音频音量

如何使用PulseAudio从音频输出重定向到麦克风输入?

如何使用Audiocontext html5从麦克风获取音频数据

如何合并几个base64音频块(来自麦克风)

如何确定我的麦克风音频输入在/ dev中的位置?

如何将音频输出传递到麦克风输入

如何将脉冲音频设备路由到Alsa回送(虚拟麦克风)?

Flutter:如何将麦克风的原始音频信号实时存储到内存中?