> Echo cancellation is really supposed to be application layer and up to you as well, but I think this will probably shift to be the browser's/WebRTC's/getUserMedia's responsibility at some point.
Echo cancellation typically can't be application layer. The APIs I've seen (Android, iOS, WebRTC), require low level latency and works best as close to hardware as possible.
{ echoCancellation: true } as a track constraint in getUserMedia works.
I've never actually gotten { echoCancellation: true } to work for me, but your sibling comment does have a suggestion I need to try out!
Echo cancellation is a pretty lightweight DSP/FIR task. Whether you do it close to the hardware (? I suspect this is not actually the case with getUserMedia though -- it is still an audio stream algorithm) or in the application layer, echo cancellation requires the same amount of added latency.
But in any case, I did say I suspected echo cancellation would shift to getUserMedia. It's not fully there yet, but it will be.
Echo cancellation typically can't be application layer. The APIs I've seen (Android, iOS, WebRTC), require low level latency and works best as close to hardware as possible.
{ echoCancellation: true } as a track constraint in getUserMedia works.