InputDeviceInfo: getCapabilities() 方法
getCapabilities()
是 InputDeviceInfo
接口的方法,它返回一个 MediaTrackCapabilities
对象,该对象描述了设备的 MediaStream
的主要音频或视频轨道。
语法
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
之类的自动属性。
// 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 的浏览器中加载。
另请参阅
MediaStreamTrack.getCapabilities()
,它也返回一个MediaTrackCapabilities
对象。