2014-10-21 2 views
15

В дни, прошедшие до начала WebRTC googletalkplugin, можно отключить AGC (автоматическое управление усилением для микрофона), добавив audio-flags: 1 в файл конфигурации , Однако, поскольку Google Hangouts теперь использует WebRTC, часто случается так, что, когда я общаюсь с кем-то, мой уровень микрофона снимается полностью, так что я более или менее молчал с другой стороны. У меня также были корреспонденты, чей объем микрофонов был увеличен полностью, неоднократно.Как отключить автоматическое управление усилением (AGC) в веб-приложениях WebRTC, таких как Google Hangouts или OpenTokRTC.

Я воспроизвел это поведение на http://opentokrtc.com/, который также использует WebRTC. Сделав громкие звуки в моем микрофоне, я смогу получить уровень, чтобы пройти весь путь в несколько шагов. Я могу сделать это как на Chrome 38, так и на FireFox 34 beta.

Однако, когда я использую локальное приложение, например Audacity, на моем компьютере Ubuntu 14.04.1, я не не способен влиять на уровень микрофона, делая громкие звуки. Другими словами, на самом деле это выглядит как WebRTC.

Похоже, что при реализации Chrome вы можете настроить AGC WebRTC, передав googAutoGainControl на вызов getUserMedia(). В FireFox я не смог найти эквивалент.

Мой вопрос: Как конечный пользователь WebRTC , как настроить мой браузер (Chrome или FireFox) для отключения AGC, поскольку AGC не работает правильно в моей настройке?

+0

Надеется [@jesup] (http://stackoverflow.com/users/105687/jesup) рассматривает этот вопрос и может ответить на FireFox :) –

+0

Вы добились никакого прогресса здесь? В результате я прекратил использование Chrome. –

+0

Боюсь, что нет, я все еще придерживаюсь той же проблемы.:( –

ответ

5

GoogAutoGainControl as MediaTrackConstraints относится к Chrome (WebKit).

Рабочая Группа WebRTC Хартия еще пишет стандарт, и они закончат на следующий 30 июня 2015 года

Firefox не поддерживает прямо сейчас.

Примечание. Использование AGC не рекомендуется, чтобы указать какое-либо ограничение для конкретного браузера как обязательное, так как ваш вызов не будет работать в браузере, который не поддерживает ограничение. Вместо этого укажите свои ограничения как необязательные. Ваш браузер сделает все возможное, чтобы удовлетворить как можно больше дополнительных ограничений.

BTW вы можете играть с интерфейсом GainNode в Firefox: https://developer.mozilla.org/en-US/docs/Web/API/GainNode

Пример для отключения 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   
    }); 

Конечный пользователь не может отключить в браузере эту функцию прямо сейчас. Продвинутый пользователь может редактировать настройки в about: config в Firefox, но в Chrome не существует.

2

Похоже, FireFox добавил некоторую поддержку для этого в 46: https://wiki.mozilla.org/Media/WebRTC/ReleaseNotes/46

Осуществленные echoCancellation, mozAutoGainControl и mozNoiseSuppression Gum ограничений. (Ошибка 987186.)

+0

Я считаю, что AGC по умолчанию отключается в Firefox, просто fyi. – jib