MediaTrackConstraints:deviceId 属性

MediaTrackConstraints 字典的 deviceId 属性是一个 ConstrainDOMString,描述了对 deviceId 可约束属性的值施加的请求或强制约束。

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

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

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

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

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

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

示例

请参阅 约束练习器 示例。

规范

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

浏览器兼容性

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

另请参阅