2

I had a WebRTC application that was previously working and now I get the error TrackStartError while calling getuserMedia().

I'm using Chrome version 50.0.2661.75 m (64-bit).

Adrian Ber
  • 20,474
  • 12
  • 67
  • 117

3 Answers3

3

It seems that Google discontinued the usage of the following audio constraints: googEchoCancellation2, googAutoGainControl, googAutoGainControl2, googNoiseSuppression2. Removing these constraints worked for me. googAutoGainControl could be the one mostly used.

Adrian Ber
  • 20,474
  • 12
  • 67
  • 117
  • 1
    in what chrome version? There have been some constraint changes recently, in particular https://bugs.chromium.org/p/webrtc/issues/detail?id=4906#c14 I think those constraints are obsolete these days but things should not break without proper announcement. – Philipp Hancke Apr 18 '16 at 21:01
  • I updated my question with the Chrome version. I agree with you, but it happened and I thought I share so others may benefit and not lose time trying to figure out. – Adrian Ber Apr 19 '16 at 05:22
  • Those should have always been optional constraints, I mean, I assume only Chromium based browsers supported them anyway. They were prefixed for a reason (to denote them as experimental and breakable at any point). Did you define them as mandatory constraints? If so, while a small announcement would have been nice, your code was wrong anyway... – PhistucK Apr 19 '16 at 05:54
  • https://bugs.chromium.org/p/webrtc/issues/detail?id=4906#c16 -- quite likely this change was covered by the "PSA: stuff is going to break". – Philipp Hancke Apr 19 '16 at 08:06
2

I had the same error, i was using this flags

"mandatory": {
    googTypingNoiseDetection: false,
    googEchoCancellation: false,
    googEchoCancellation2: false,
    googAutoGainControl: false,
    googAutoGainControl2: false,
    googNoiseSuppression: false,
    googNoiseSuppression2: false,
    googHighpassFilter: false,
}

now, I have to verify if chrome version is higher than 50, in that case only uses these flags

"mandatory": {
    googTypingNoiseDetection: false,
    googEchoCancellation: false,
    //googEchoCancellation2: false,
    googAutoGainControl: false,
    //googAutoGainControl2: false,
    googNoiseSuppression: false,
    //googNoiseSuppression2: false,
    googHighpassFilter: false,
}
Icaro Martins
  • 307
  • 12
  • 22
1

goog prefixed constraints are used on your own risk and they can stop working at any time. The proper way to disable audio processing in Chrome is to set echoCancellation to false.