Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

392
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda