MediaTrackConstraints: deviceId 属性

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

MediaTrackConstraints 字典的 deviceId 属性是一个 ConstrainDOMString,用于描述在 deviceId 可约束属性上设置的请求的或强制的约束。

如果需要,您可以通过调用 MediaDevices.getSupportedConstraints() 返回的 MediaTrackSupportedConstraints.deviceId 的值来确定此约束是否受支持。但是,通常这没有必要,因为浏览器会忽略它们不认识的任何约束。

由于 RTP 不包含此信息,因此与 WebRTC RTCPeerConnection 关联的轨道永远不会包含此属性。

一个基于 ConstrainDOMString 的对象,指定一个或多个可接受、理想和/或精确(强制)的设备 ID,这些 ID 可作为媒体内容的来源。

设备 ID 对于给定的源是唯一的,并且在同一源的浏览会话之间保证是相同的。然而,deviceId 的值由轨道内容的来源决定,并且规范没有强制规定特定的格式(尽管建议使用某种 GUID)。这意味着当您调用 getCapabilities() 时,给定的轨道只会返回一个 deviceId 值。

因此,在调用 MediaStreamTrack.applyConstraints() 时,deviceId 没有用处,因为只有一个可能的值;但是,您可以记录一个 deviceId 并使用它来确保您在多次调用 getUserMedia() 时获得相同的源。

注意: 设备 ID 在浏览会话之间相同的规则有一个例外:私密浏览模式将使用不同的 ID,并且每次浏览会话都会更改它。

示例

请参阅 Constraint exerciser 示例。

规范

规范
媒体捕获和流
# dom-mediatrackconstraintset-deviceid

浏览器兼容性

另见