Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

391
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!