The getCapabilities() method of the InputDeviceInfo interface returns a MediaTrackCapabilities object describing the primary audio or video track of the device's MediaStream.
The getCapabilities() method of the InputDeviceInfo interface returns a MediaTrackCapabilities object describing the primary audio or video track of the device's MediaStream.
js
getCapabilities()
None.
A MediaTrackCapabilities object containing the following members:
deviceIdA ConstrainDOMString object containing the device ID.
groupIdA ConstrainDOMString object containing a group ID.
autoGainControl> A ConstrainBoolean object reporting if the source can do auto gain control. If the feature can be controlled by a script the source will report both true and false as possible values. 
channelCountA ConstrainULong containing the channel count or range of channel counts.
echoCancellation A ConstrainBoolean object reporting if the source can do echo cancellation. If the feature can be controlled by a script the source will report both true and false as possible values. 
latencyA ConstrainDouble containing the latency or range of latencies.
noiseSuppression A ConstrainBoolean object reporting if the source can do noise suppression. If the feature can be controlled by a script the source will report both true and false as possible values. 
sampleRateA ConstrainULong containing the sample rate or range of sample rates.
sampleSizeA ConstrainULong containing the sample size or range of sample sizes.
aspectRatioA ConstrainDouble containing the video aspect ratio (width in pixels divided by height in pixels) or range of aspect ratios.
facingModeA ConstrainDOMString object containing the camera facing mode. A camera may report multiple facings, for example "left" and "user".
frameRateA ConstrainDouble containing the frame rate or range of frame rates which are acceptable.
heightA ConstrainULong containing the video height or range of heights in pixels.
widthA ConstrainULong containing the video width or range of widths in pixels.
resizeModeA ConstrainDOMString object containing the mode or an array of modes the UA can use to derive the resolution of the video track.
Note: If the user has not granted permission to access the input device an empty object will be returned.
In the following example we ask for permission to access audio and video devices with mediaDevices.getUserMedia(), as to use getCapabilities() we need permission to access the devices.
If device is an InputDeviceInfo object, then getCapabilities() will return an object with members representing its capabilities. A video stream will not include auto properties such as noiseSuppression, for example.
js
// Get permission to access audio or video devices navigator.mediaDevices.getUserMedia({ audio: true, video: true }); navigator.mediaDevices.enumerateDevices().then((devices) => { devices.forEach((device) => { console.log(device.getCapabilities()); // a MediaTrackCapabilities object. }); });
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
getCapabilities | 
67 | 79 | No | No | 54 | 17 | 67 | 67 | No | 48 | 17 | 9.0 | 
    © 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
    https://developer.mozilla.org/en-US/docs/Web/API/InputDeviceInfo/getCapabilities