Perché WebRTC perde l'audio

Aug 22 2020

Sto realizzando un'app per videoconferenze in cui l'audio è molto importante. Ho appena superato un grosso ostacolo (mi ci sono volute circa 2 settimane su 2 settimane e mezzo di lavoro su di esso), cambiando dispositivo audio, ma ora quando vado a provarlo su 2 computer e alzo il microfono l'audio si spegne . Ho quindi alzato l'ingresso del microfono, che ha funzionato per la stessa quantità di tempo prima che il volume si abbassasse. Ho anche provato a installare autoGainControla false, ma che non sembrava di fare nulla. C'è un modo semplice per farlo?


Ho provato: noiseSuppression: false, (ovviamente autoGainControl), echoCancellation: false, channelCount: 2, latency: 0, ognuno dei quali non ha funzionato. Ecco il codice corrente per getUserMedia:

                audio: {
                    echoCancellation: echoCancellationMASTER,
                    noiseSuppression: noiseSuppressionMASTER,
                    latency: 0,
                    sampleRate: 48000,
                    sampleSize: 24,
                    autoGainControl: false
                    /*autoGainControl: false,
                    channelCount: 2,
                    latency: 0,
                    volume: 3.0*/
                }

Nota che il codice commentato è quello che ho anche provato, ma attualmente non lo sto utilizzando.

Fare clic qui per il codice GitHub

Tutte le idee sono apprezzate, grazie !!

Risposte

1 Brad Aug 23 2020 at 03:32

In primo luogo, chrome://webrtc-internalsassicurati che i tuoi vincoli vengano applicati correttamente, nel modo in cui ti aspetti che siano.

Quindi, usa un set di cuffie su ciascuno per eliminare la possibilità di feedback. Ciò aiuterà a confermare il problema, che sospetto sia un algoritmo di cancellazione dell'eco da qualche parte. Dopo aver confermato che è così ...

Anche se si imposta echoCancellationsu falsee noiseSuppressionsu false, molti dispositivi hanno ancora i propri "miglioramenti" per la riduzione del feedback. Sospetto che questo sia quello che stai ascoltando.

Se questo è il caso, allora non c'è davvero nulla che puoi fare al riguardo come sviluppatore web. È a un livello completamente diverso a parte il browser. Vedo spesso questo problema con i driver Realtek di Lenovo quando utilizzo il microfono come dispositivo di "comunicazione", ma ho avuto lo stesso problema su altri computer.