InputDeviceInfo: getCapabilities() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

getCapabilities()InputDeviceInfo 接口的方法,它返回一个 MediaTrackCapabilities 对象,该对象描述了设备的 MediaStream 的主要音频或视频轨道。

语法

js
getCapabilities()

参数

无。

返回值

一个 MediaTrackCapabilities 对象,它指定用户代理支持的每个可约束属性的支持值或值范围,包含以下成员

deviceId

一个包含设备 ID 的 ConstrainDOMString 对象。

groupId

一个包含组 ID 的 ConstrainDOMString 对象。

autoGainControl

一个 ConstrainBoolean 对象,报告源是否可以进行自动增益控制。如果该特性可以由脚本控制,则源将报告 true 和 false 作为可能的值。

channelCount

一个包含通道数或通道数范围的 ConstrainULong

echoCancellation

一个 ConstrainBoolean 对象,报告源是否可以进行回声消除。如果该特性可以由脚本控制,则源将报告 true 和 false 作为可能的值。

latency

一个包含延迟或延迟范围的 ConstrainDouble

noiseSuppression

一个 ConstrainBoolean 对象,报告源是否可以进行降噪。如果该特性可以由脚本控制,则源将报告 true 和 false 作为可能的值。

sampleRate

一个包含采样率或采样率范围的 ConstrainULong

sampleSize

一个包含样本大小或样本大小范围的 ConstrainULong

aspectRatio

一个包含视频纵横比(以像素为单位的宽度除以以像素为单位的高度)或纵横比范围的 ConstrainDouble

facingMode

一个包含摄像头朝向模式的 ConstrainDOMString 对象。摄像头可能会报告多种朝向,例如“left”和“user”。

frameRate

一个包含帧速率或可接受的帧速率范围的 ConstrainDouble

height

一个包含视频高度或以像素为单位的高度范围的 ConstrainULong

width

一个包含视频宽度或以像素为单位的宽度范围的 ConstrainULong

resizeMode

一个包含 UA 用于导出视频轨道分辨率的模式或模式数组的 ConstrainDOMString 对象。

注意:如果用户尚未授予访问输入设备的权限,则将返回一个空对象。

示例

在以下示例中,我们请求使用 mediaDevices.getUserMedia() 访问音频和视频设备的权限,因为要使用 getCapabilities(),我们需要访问设备的权限。

如果 device 是一个 InputDeviceInfo 对象,则 getCapabilities() 将返回一个包含表示其功能的成员的对象。例如,视频流将不包含诸如 noiseSuppression 之类的自动属性。

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.
  });
});

规范

规范
媒体捕获和流
# dom-inputdeviceinfo-getcapabilities

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅