我一直在开发一个getUserMedia和WebRTC的应用程序,它要求我使用MediaStreamTrack的getSettings()方法返回的信息。
在测试中,在与外部摄像头相对应的轨道上使用getCapabilities()可能会返回类似于.
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}
...but如果focusDistance
或colorTemperature
(或其他潜在成员列出的这里)不在功能列表中,那么是什么决定了相机或其他媒体设备的可控设置?
这一问题的答案是否也适用于移动设备,如安卓、iOS平板电脑或手机,这些设备都集成了摄像头和麦克风?
发布于 2018-10-27 23:53:25
track.getCapabilities()
返回的功能是四件事的交集:
getUserMedia
和getDisplayMedia
轨道具有不同的功能。track.kind
。例如,音频功能不返回视频轨道,反之亦然。您将了解浏览器支持的功能如下:
console.log(navigator.mediaDevices.getSupportedConstraints());
然后,您通常依赖于文档和规范来了解哪些功能适用于哪种方法和kind
。
新版本的浏览器倾向于支持更多的功能。还不是所有的浏览器都支持getCapabilities()
。例如,火狐不支持现在还没有,尽管它在其他方面支持约束。
因此,在依赖某项功能之前,最好检查支持的内容(如上面所示)。
对于您提到的特定功能,focusDistance
和colorTemperature
,它们是为getUserMedia
返回的曲目定义的,但定义在媒体图像扩展规范中,因此如果支持它们,它们应该会显示出来。他们的缺席意味着他们得不到支持。
https://stackoverflow.com/questions/52979894
复制相似问题