Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

393
Vistas
El cambio de micrófono angular de la aplicación web provoca el error `NotReadableError: límite de proceso de micrófono concurrente`

Estoy tratando de implementar una función de cambio de micrófono donde, mientras estoy en una llamada en vivo en el navegador, puedo reemplazar mi micrófono actual en uso por uno nuevo.

Después de seleccionar el nuevo micrófono al que quiero cambiar, recibo un NotReadableError: Concurrent mic process limit. mensaje de error. Este mensaje de error solo se puede replicar en Firefox, en los navegadores Chrome no se muestra ningún error, sin embargo, el problema de no poder cambiar a otros micrófonos persiste de todos modos.

Esto se debe a que el dispositivo anterior no se desactiva/destruye antes de agregar el nuevo dispositivo, esto es visible desde los íconos de permiso aquí:

ingrese la descripción de la imagen aquí

El micrófono anterior todavía está activo y, por lo tanto, cuando permito el nuevo dispositivo, recibo el error de límite de proceso de micrófono concurrente.

Estoy usando replaceTrack() para cambiar al nuevo dispositivo seleccionado, y la siguiente función se ejecuta al seleccionar un nuevo micrófono para activarlo.

 async onMicrophoneSelected(event: any) { // selectedDeviceId holds the deviceId of the microphone i want to switch to const selectedDeviceId = event?.value; var newAudioTrack; var constraints; var mediaStream: MediaStream; var audioTrack: MediaStreamTrack; // Looping through all available devices here await navigator.mediaDevices.enumerateDevices().then((res) => { res.forEach((device) => { // Here checking if the available device is an audioinput and if its id matches the one which we want to swap to. if (device.kind === 'audioinput' && device.deviceId === selectedDeviceId) { newAudioTrack = device; // constraints specified here with new deviceId of microphone constraints = { video: { facingMode: 'user' }, audio: { deviceId: { exact: newAudioTrack['deviceId'] } }, }; } }); }); // Passing constraints into mediaStream mediaStream = await navigator.mediaDevices.getUserMedia(constraints); audioTrack = mediaStream.getVideoTracks()[0]; // Custom replaceTrack() function here this.localUsersService .getWebcamPublisher() .replaceTrack(audioTrack) .then(() => { this.publishAudio(true); this.hasAudioDevices = true; }); }

¿Cómo puedo desactivar completamente el micrófono/cámara anterior antes de cambiar al nuevo conjunto de permisos de micrófono y cámara?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Como ya mencionaste, esta es una limitación en Firefox en la que se está trabajando actualmente.

https://bugzilla.mozilla.org/show_bug.cgi?id=1238038

Puede detener la transmisión actual antes de solicitar otra llamando a detener en todas sus pistas.

 mediaStream.getTracks().forEach((track) => track.stop());
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda