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