«echoCancellation: false» сломано в Windows 10 для Firefox и Chrome - PullRequest
0 голосов
/ 11 февраля 2020

Наша страница зависит от того, будет ли пользователь записывать звук во время воспроизведения звука. Это работает, только если для echoCancellation установлено значение false в вызове getUserMedia. Раньше это работало в Windows 10, но недавно у нас появились сообщения о том, что качество записи ухудшилось. Глядя на запись, становится ясно, что при звуке на компьютере возникают пропадания - это точно так же, как мы получили до того, как я добавил echoCancellation: false. Вот что мы видим сейчас:

  • OSX: Chrome WORKS
  • OSX: Firefox WORKS
  • OSX: Safari WORKS
  • Win10: Edge WORKS
  • Win10: Firefox НЕ МОЖЕТ ВЫКЛЮЧИТЬ ЭХО АННУЛИРОВАНИЕ
  • Win10: Chrome НЕ МОЖЕТ ВЫКЛЮЧИТЬ ЭХО АННУЛИРОВАНИЕ

Кроме того, у нас не было никаких претензий к мобильным платформам.

Опять же, когда мы впервые написали это, мы явно протестировали на Windows, и он работал нормально, и некоторое время он отлично работал в поле.

Что изменилось? Кто-нибудь может предложить другой способ назвать это? Вот что я пробовал:

navigator.mediaDevices.getUserMedia({
  audio: {
    echoCancellation: false
  }
}).then(stream => {
navigator.mediaDevices.getUserMedia({
  audio: {
    echoCancellation: { ideal: false }
  }
}).then(stream => {
stream.getAudioTracks()[0].applyConstraints({echoCancellation: false})

[EDIT] Я забыл упомянуть о неудачных версиях. Это: windows 10 и firefox 73 и chrome 80.0.3987.87.

...