MediaTrackSettings: deviceId 属性

MediaTrackSettings 字典的 deviceId 属性是一个字符串,它唯一标识与相应 MediaStreamTrack 相关的源,该源对应于浏览会话的源。这使您可以确定选择的值以符合您为该属性的值指定的约束,如 MediaTrackConstraints.deviceId 属性中所述,您在调用 getUserMedia() 时提供了该属性。

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

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

一个字符串,其值为轨道源的源唯一标识符。此 ID 在同一源的多个浏览会话中有效,并且保证与所有其他源的 ID 不同,因此您可以安全地使用它来请求在多个会话中使用相同的源,例如。

但是,字符串的实际值由轨道的源确定,并且无法保证其形式,尽管规范建议它为 GUID。

由于 ID 与每个源之间是一对一配对,因此对于任何给定的源,所有具有相同源的轨道都将共享相同的 ID,因此 MediaStreamTrack.getCapabilities() 将始终为 deviceId 返回一个值。这使得设备 ID 在调用 MediaStreamTrack.applyConstraints() 时对任何约束更改都没有用。

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

示例

查看 约束执行器 示例。

规范

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

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅