Necesito grabar una reunión (pantalla + micrófono + audio de ventana) que utiliza AWS Chime JavaScript SDK. He intentado usar MediaStream y MediaRecorder, pero hasta ahora solo he logrado grabar el video de la pantalla, el audio del micrófono del parlante y cualquier audio que provenga de diferentes pestañas en el navegador. Cada vez que un asistente habla, no se le escucha en la grabación.
Sin embargo, cuando ejecuto el mismo código de grabación, pero en un proyecto local, puedo grabar la pantalla y el audio del sistema, que incluye a todos los que hablan en la reunión. ¿Por qué podría ser eso?
Este es mi código:
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 } }¿Alguna idea sobre cómo grabar una reunión con AWS Chime?