InputDeviceInfo: getCapabilities() 方法
InputDeviceInfo 接口的 getCapabilities() 方法返回一个 MediaTrackCapabilities 对象,该对象描述了设备 MediaStream 的主要音频或视频轨道。
语法
js
getCapabilities()
参数
无。
返回值
一个 MediaTrackCapabilities 对象,它指定了用户代理支持的每个可约束属性的值或值范围。它要求返回与调用 getUserMedia({ deviceId: deviceInfo.deviceId }) 返回的 MediaStream 中该设备的(视频或音频)相同 kind 的第一个 MediaStreamTrack 上的 getCapabilities() 所返回的信息相同。
有关常用支持的属性及其类型的列表,请参阅 MediaStreamTrack.getCapabilities()。
注意: 如果用户未授予访问输入设备的权限,则会返回一个空对象。
示例
在以下示例中,我们使用 mediaDevices.getUserMedia() 请求访问音频和视频设备的权限,因为要使用 getCapabilities(),我们需要访问设备的权限。
如果 device 是一个 InputDeviceInfo 对象,那么 getCapabilities() 将返回一个包含表示其功能的成员的对象。例如,视频流将不包含 noiseSuppression 等自动属性。
js
// Get permission to access audio or video devices
navigator.mediaDevices
.getUserMedia({ audio: true, video: true })
// Enumerate media devices
.then(() => navigator.mediaDevices.enumerateDevices())
.then((devices) => {
devices.forEach((device) => {
if (typeof device.getCapabilities === "function") {
console.log("Capabilities:", device.getCapabilities()); // A MediaTrackCapabilities object.
} else {
console.log("Device does not support getCapabilities:", device);
}
});
})
.catch((mediaError) => {
console.error("Error accessing media devices:", mediaError);
});
规范
| 规范 |
|---|
| 媒体捕获和流 # dom-inputdeviceinfo-getcapabilities |
浏览器兼容性
加载中…
另见
MediaStreamTrack.getCapabilities(),它也返回一个MediaTrackCapabilities对象。