Warum löscht WebRTC Audio?

Aug 22 2020

Ich mache eine Videokonferenz-App, in der Audio sehr wichtig ist. Ich habe gerade eine große Hürde überwunden (ich habe ungefähr 2 Wochen von zweieinhalb Wochen Arbeit daran gebraucht) und Audiogeräte gewechselt, aber jetzt, wenn ich es auf 2 Computern teste und mein Mikrofon aufdrehe, wird das Audio leise . Ich drehte dann den Mikrofoneingang auf, der ungefähr genauso lange funktionierte, bevor die Lautstärke abnahm. Ich habe sogar versucht Einstellung autoGainControlzu false, aber das schien nichts zu tun. Gibt es eine einfache Möglichkeit, dies zu tun?


Ich habe versucht: noiseSuppression: false, (natürlich autoGainControl), echoCancellation: false, channelCount: 2, latency: 0, von denen alle funktioniert nicht. Hier ist der aktuelle Code für getUserMedia:

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

Beachten Sie, dass ich den auskommentierten Code ebenfalls ausprobiert habe, ihn aber derzeit nicht verwende.

Klicken Sie hier für den Github-Code

Irgendwelche Ideen werden geschätzt, danke !!

Antworten

1 Brad Aug 23 2020 at 03:32

Stellen Sie zunächst chrome://webrtc-internalssicher, dass Ihre Einschränkungen korrekt angewendet werden, so wie Sie es erwarten.

Verwenden Sie als Nächstes jeweils einen Kopfhörer, um Rückkopplungsmöglichkeiten auszuschließen. Dies wird helfen, das Problem zu bestätigen, von dem ich vermute, dass es irgendwo einen Algorithmus zur Echokompensation gibt. Sobald Sie bestätigt haben, dass dies der Fall ist ...

Obwohl Sie echoCancellationauf falseund noiseSuppressionauf eingestellt haben false, haben viele Geräte immer noch ihre eigenen "Verbesserungen" zur Reduzierung von Rückkopplungen. Ich vermute, das hören Sie.

Wenn dies der Fall ist, können Sie als Webentwickler wirklich nichts dagegen tun. Es befindet sich auf einer ganz anderen Ebene als der Browser. Ich sehe dieses Problem häufig bei den Realtek-Treibern von Lenovo, wenn ich das Mikrofon als "Kommunikations" -Gerät verwende, habe aber auf anderen Computern das gleiche Problem gehabt.