es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error: No se pudo iniciar la fuente de audio en mediaDevices.getUserMedia

Estoy intentando hacer una grabadora de pantalla con electron.js.

He utilizado desktopCapturer.getSources para obtener todas las pantallas, lo cual funciona bien, pero cuando intento obtener el flujo utilizando navigator.mediaDevices.getUserMedia, arroja un error:

> DOMException: No se pudo iniciar la fuente de audio
const handleRecordActions = async () => {
    const { id } = activeScreen;
    try {
      // console.log("aquí", navigator);
      stream = await navigator.mediaDevices.getUserMedia({
        audio: {
          mandatory: {
            chromeMediaSource: "desktop",
            chromeMediaSourceId: id,
          },
        },
        video: {
          mandatory: {
            chromeMediaSource: "desktop",
            chromeMediaSourceId: id,
          },
        },
      });
      stream.stop = function () {
        stream.getAudioTracks().forEach(function (track) {
          track.stop();
        });
        stream.getVideoTracks().forEach(function (track) {
          //en caso de... :)
          track.stop();
        });
      };
      setStream(stream);
      handleStream(stream);
      // console.log({ stream, d: stream.getAudioTracks() });
    } catch (e) {
      console.log(e);
    }
};

Si establezco audio: false, entonces arroja un error diferente:

> DOMException: Error al iniciar la captura de pantalla

Estoy trabajando en:

Ubuntu: 20.04
Electron: ^16.0.4

Edit:

He confirmado que este error ocurre solo en Linux (Ubuntu), ya que el mismo código funciona perfectamente en Windows.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que puede haber un problema al capturar audio en Ubuntu utilizando navigator.mediaDevices.getUserMedia. Según el mensaje de error, parece que podría haber un problema al iniciar la fuente de audio, lo cual está causando problemas con la grabación de pantalla.

    Una posible solución a este problema podría ser verificar los permisos en Ubuntu para capturar audio del sistema. Podría ser que el usuario que ejecuta la aplicación de Electron no tenga los permisos necesarios para capturar audio, lo cual provoca la aparición del mensaje de error.

    Otra forma de resolver este problema podría ser utilizar una biblioteca de terceros como recordRTC o MediaRecorder que podría funcionar sin problemas con Ubuntu y Electron para la grabación de pantalla. Estas bibliotecas tienen soporte incorporado para la grabación de pantalla y pueden no depender de navigator.mediaDevices.getUserMedia para capturar la pantalla y las fuentes de audio.

    En general, esto depende en gran medida de los detalles exactos de la aplicación y los requisitos para la grabación de pantalla. Sin embargo, probar diferentes enfoques y bibliotecas es probable que ayude a identificar el problema y resolverlo adecuadamente.

Comments are closed.