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 表格仅在浏览器中加载