我需要录制使用 AWS Chime JavaScript SDK 的会议(屏幕 + 麦克风 + 窗口音频)。我曾尝试使用 MediaStream 和 MediaRecorder,但到目前为止,我只设法录制了屏幕视频、扬声器麦克风音频以及来自浏览器中不同选项卡的任何音频。每当与会者讲话时,录音中都不会听到他的声音。
但是,当我在本地项目上运行相同的录制代码时,我能够录制屏幕和系统音频,其中包括在会议上发言的每个人。为什么会这样?
这是我的代码:
async setupStream() {
try {
this.stream = await navigator.mediaDevices.getDisplayMedia({
video: { mediaSource: 'screen' },
audio: true,
})
this.audio = await navigator.mediaDevices.getUserMedia({
audio: true,
})
this.audioCtx = DefaultDeviceController.getAudioContext();
this.source1 = this.audioCtx.createMediaStreamSource(this.audio)
this.source2 = this.audioCtx.createMediaStreamSource(this.stream)
this.destination = this.audioCtx.createMediaStreamDestination()
this.source1.connect(this.destination)
this.source2.connect(this.destination)
} catch (err) {
console.error(err)
}
}
async start() {
wait this.setupStream()
if (this.stream && this.audio) {
this.mixedStream = new MediaStream()
this.mixedStream.addTrack(this.stream.getVideoTracks()[0])
this.mixedStream.addTrack(this.destination.stream.getAudioTracks()[0])
this.recorder = new MediaRecorder(this.mixedStream)
this.chunks = []
this.recorder.ondataavailable = (e) => this.chunks.push(e.data)
this.onStopRecord()
this.recorder.start(1000)
this.recordStart()
this.recording = true
this.modal = false
}
}
关于如何使用 AWS Chime 录制会议的任何想法?