什么决定了 MediaStreamTrack.getCapabilities() 方法枚举哪些功能?
What determines which capabilities are enumerated by the MediaStreamTrack.getCapabilities() method?
我一直在开发 getUserMedia 和 WebRTC 的应用程序,它要求我利用 return 由 getConstraints()、getCapabilities() 和 getSettings() MediaStreamTrack 的方法。
在测试中,在对应于外部网络摄像头的轨道上使用 getCapabilities() 可能 return 类似于...
aspectRatio: {max: 1920, min: 0.000925925925925926}
deviceId: ""
exposureCompensation: MediaSettingsRange {max: 2047, min: 3, step: 1}
exposureMode: (2) ["manual", "continuous"]
facingMode: []
focusMode: (2) ["manual", "continuous"]
frameRate: {max: 30, min: 1}
groupId: ""
height: {max: 1080, min: 1}
whiteBalanceMode: ["manual"]
width: {max: 1920, min: 1}
zoom: MediaSettingsRange {max: 5, min: 1, step: 1}
...但是如果 focusDistance
或 colorTemperature
(或 here 列出的其他潜在成员)不在功能列表中,那么什么决定了相机或其他媒体设备?
这个问题的答案是否也适用于 Android 或 iOS 平板电脑或手机等具有集成摄像头和麦克风的移动设备?
track.getCapabilities()
返回的能力是四件事的交集:
- 曲目来源。
getUserMedia
和 getDisplayMedia
轨道具有不同的功能。
track.kind
。例如。视频轨道不返回音频功能,反之亦然。
- 浏览器支持的功能。
- 设备支持的功能。
您可以像这样了解浏览器支持的功能:
console.log(navigator.mediaDevices.getSupportedConstraints());
然后,您通常依靠文档和规范来了解哪些功能适用于哪种方法,kind
。
较新版本的浏览器往往支持更多功能。并非所有浏览器都支持 getCapabilities()
。例如,Firefox 不 yet,即使它在其他方面支持约束。
因此,在依赖某项功能之前,始终最好检查支持的内容(如上所示)。
对于您提到的特定功能,focusDistance
和 colorTemperature
,它们是为 getUserMedia
返回的轨道定义的,但在 mediacapture-image 扩展规范中定义,因此它们应该如果他们得到支持,就会出现。他们的缺席意味着他们不受支持。
我一直在开发 getUserMedia 和 WebRTC 的应用程序,它要求我利用 return 由 getConstraints()、getCapabilities() 和 getSettings() MediaStreamTrack 的方法。
在测试中,在对应于外部网络摄像头的轨道上使用 getCapabilities() 可能 return 类似于...
aspectRatio: {max: 1920, min: 0.000925925925925926}
deviceId: ""
exposureCompensation: MediaSettingsRange {max: 2047, min: 3, step: 1}
exposureMode: (2) ["manual", "continuous"]
facingMode: []
focusMode: (2) ["manual", "continuous"]
frameRate: {max: 30, min: 1}
groupId: ""
height: {max: 1080, min: 1}
whiteBalanceMode: ["manual"]
width: {max: 1920, min: 1}
zoom: MediaSettingsRange {max: 5, min: 1, step: 1}
...但是如果 focusDistance
或 colorTemperature
(或 here 列出的其他潜在成员)不在功能列表中,那么什么决定了相机或其他媒体设备?
这个问题的答案是否也适用于 Android 或 iOS 平板电脑或手机等具有集成摄像头和麦克风的移动设备?
track.getCapabilities()
返回的能力是四件事的交集:
- 曲目来源。
getUserMedia
和getDisplayMedia
轨道具有不同的功能。 track.kind
。例如。视频轨道不返回音频功能,反之亦然。- 浏览器支持的功能。
- 设备支持的功能。
您可以像这样了解浏览器支持的功能:
console.log(navigator.mediaDevices.getSupportedConstraints());
然后,您通常依靠文档和规范来了解哪些功能适用于哪种方法,kind
。
较新版本的浏览器往往支持更多功能。并非所有浏览器都支持 getCapabilities()
。例如,Firefox 不 yet,即使它在其他方面支持约束。
因此,在依赖某项功能之前,始终最好检查支持的内容(如上所示)。
对于您提到的特定功能,focusDistance
和 colorTemperature
,它们是为 getUserMedia
返回的轨道定义的,但在 mediacapture-image 扩展规范中定义,因此它们应该如果他们得到支持,就会出现。他们的缺席意味着他们不受支持。