MediaTrackConstraints: echoCancellation property

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨January 2020⁩.

The MediaTrackConstraints dictionary's echoCancellation property is a ConstrainBooleanOrDOMString describing the requested or mandatory constraints placed upon the value of the echoCancellation constrainable property.

If needed, you can determine whether or not this constraint is supported by checking the value of MediaTrackSupportedConstraints.echoCancellation as returned by a call to MediaDevices.getSupportedConstraints(). However, typically this is unnecessary since browsers will ignore any constraints they're unfamiliar with.

Value

A boolean, a string, or a ConstrainBooleanOrDOMString object.

If the browser supports specific echo cancellation types, the value can be set as one of the following:

"all"

All user system-generated audio captured by the user's microphone is removed. This is useful for example in situations where you want to avoid capturing privacy-sensitive audio such as screen reader output and system notifications.

"remote-only"

Only user system-generated audio captured by the user's microphone from remote sources (as represented by MediaStreamtracks sourced from an RTCPeerConnection) is removed. This is useful when you want to remove echo from communication with remote peers but still share local audio, such as in the case of a music lesson where the teacher wants to hear their student(s) playing along to an audio track but still communicate clearly with them.

true

The browser decides what audio will be removed from the signals recorded by the microphone. It must attempt to cancel at least as much as remote-only and should attempt to cancel as much as all.

false

No audio is removed; no echo cancellation will take place.

If the browser doesn't support specific echo cancellation types, the value can be true or false.

If set as one of the above values, the user agent will attempt to obtain media with echo cancellation enabled or disabled as specified, if possible, but will not fail if this can't be done.

If the value is given as an object with an exact field, that field's value indicates a required setting for the echo cancellation feature; if it can't be met, then the request will result in an error.

Examples

See the Constraint exerciser example.

Specifications

Specification
Media Capture and Streams
# dom-mediatrackconstraintset-echocancellation

Browser compatibility

See also