Estoy desarrollando una aplicación en la que me gustaría grabar la salida de audio de la computadora de un usuario. Digamos, por ejemplo, si el usuario está viendo un video (en el reproductor, youtube o netflix) en su computadora, quiero grabar el sonido.
Básicamente, quiero grabar una mezcla estéreo.
¿Hay alguna forma de lograr eso usando Javascript?
Si está usando electron, puede usar el capturador de escritorio:
// In the renderer process. const { desktopCapturer } = require('electron') desktopCapturer.getSources({ types: ['window', 'screen'] }).then(async sources => { for (const source of sources) { if (source.name === 'Electron') { try { const stream = await navigator.mediaDevices.getUserMedia({ audio: false, video: { mandatory: { chromeMediaSource: 'desktop', chromeMediaSourceId: source.id, minWidth: 1280, maxWidth: 1280, minHeight: 720, maxHeight: 720 } } }) handleStream(stream) } catch (e) { handleError(e) } return } } }) function handleStream (stream) { const recorder = new MediaRecoder(stream); // your code here } function handleError (e) { console.log(e) }
Lea más sobre esto aquí: https://www.electronjs.org/docs/latest/api/desktop-capturer