2014-10-21 9 views
15

In pre-WebRTC googletalkplugin Tagen könnte man AGC (automatische Verstärkungsregelung für das Mikrofon) durch Hinzufügen von audio-flags: 1 zur Konfigurationsdatei deaktivieren . Da Google Hangouts jetzt WebRTC verwendet, passiert es oft, dass während ich mit jemandem chatte, mein Mikrofonpegel ganz nach unten geschossen wird, so dass ich auf der anderen Seite mehr oder weniger still bin. Ich hatte auch Korrespondenten, deren Mikrofonvolumen immer wieder erhöht wurde.Wie kann ich die automatische Verstärkungsregelung (AGC) in WebRTC Web-Apps wie Google Hangouts oder OpenTokRTC deaktivieren?

Ich habe dieses Verhalten auf http://opentokrtc.com/ reproduziert, die auch WebRTC verwendet. Indem ich laute Knallgeräusche in mein Mikrofon mache, kann ich den Pegel in wenigen Schritten ganz nach unten bringen. Ich kann dies sowohl in Chrome 38 als auch in FireFox 34 Beta tun.

Wenn ich jedoch eine lokale Anwendung, wie Audacity, auf meinem Ubuntu 14.04.1 Computer verwende, bin ich nicht fähig, den Mikrofonpegel zu beeinträchtigen, indem ich laute Knackgeräusche mache. Mit anderen Worten, es sieht wirklich so aus, als wäre WebRTC der Schuldige hier.

Es scheint, dass in der Implementierung von Chrome kann WebRTC AGC konfiguriert werden, indem die googAutoGainControl an den getUserMedia() Aufruf übergeben. Auf FireFox konnte ich das Äquivalent nicht finden.

Meine Frage ist: Wie ein WebRTC Endbenutzer, wie kann ich meinen Browser (Chrome oder FireFox) zu deaktivieren AGC, wie AGC funktioniert nicht richtig auf meinem Setup?

+0

Hoffentlich [@jesup] (http://stackoverflow.com/users/105687/jesup) sieht in dieser Frage und kann für FireFox beantworten :) –

+0

Haben Sie Fortschritte hier gemacht? Ich habe damit aufgehört, Chrome zu verwenden. –

+0

Ich fürchte nicht, ich bin auch noch mit dem gleichen Problem festgefahren.:( –

Antwort

5

Das googAutoGainControl als MediaTrackConstraints ist spezifisch für Chrome (WebKit).

Die WebRTC Arbeitsgruppe Charta schreibt immer noch die Norm, und sie werden die nächsten 30. Juni 2015.

Firefox nicht unterstützt jetzt beenden.

Hinweis: Verwenden Sie AGC. Es wird nicht empfohlen, dass Sie eine browserspezifische Einschränkung als obligatorisch angeben, da Ihr Aufruf in einem Browser fehlschlägt, der die Einschränkung nicht unterstützt. Geben Sie Ihre Einschränkungen stattdessen als optional an. Ihr Browser wird sein Bestes tun, um so viele optionale Einschränkungen wie möglich zu erfüllen.

BTW können Sie mit der GainNode Schnittstelle in Firefox spielen: https://developer.mozilla.org/en-US/docs/Web/API/GainNode

Beispiel deaktivieren die googAutoGainControl:

var webrtc = new SimpleWebRTC({ 
    localVideoEl: 'localVideo', 
    remoteVideosEl: '', 
    autoRequestMedia: true, 
    //detectSpeakingEvents: true, 
    adjustPeerVolume: false, 
    peerVolumeWhenSpeaking: 1, 
    media: { 
     audio: { 
     optional: [ 
      //{sourceId: audio_source}, 
      {googAutoGainControl: false}, 
      {googAutoGainControl2: false}, 
      {googEchoCancellation: false}, 
      {googEchoCancellation2: false}, 
      {googNoiseSuppression: false}, 
      {googNoiseSuppression2: false}, 
      {googHighpassFilter: false}, 
      {googTypingNoiseDetection: false}, 
      {googAudioMirroring: false} 
     ] 
    }, 
    video: { 
     optional: [ 
      //{sourceId: video_source} 
     ] 
     } 
    } 
    //autoAdjustMic: false   
    }); 

Der Endbenutzer kann diese Funktion im Browser jetzt nicht deaktivieren. Der fortgeschrittene Benutzer kann Einstellungen in der about: config in Firefox bearbeiten, aber in Chrome existiert nicht.

2

Es sieht aus wie FireFox eine gewisse Unterstützung für diese in 46 hinzugefügt: https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46

Implementiert echoCancellation, mozAutoGainControl und mozNoiseSuppression GUM Einschränkungen. (Siehe Bug 987186.)

+0

Ich glaube, AGC ist in Firefox ausgeschaltet, Nur zu deiner Information. – jib