Javascript 如何使用getusermedia从多个后置摄像头检测主/远摄摄像头
我们希望使用后摄像头进行扫描,并选择正确的后摄像头-主摄像头,而不是宽镜头摄像头Javascript 如何使用getusermedia从多个后置摄像头检测主/远摄摄像头,javascript,camera,getusermedia,Javascript,Camera,Getusermedia,我们希望使用后摄像头进行扫描,并选择正确的后摄像头-主摄像头,而不是宽镜头摄像头 navigator.mediaDevices.enumerateDevices().then(function (devices) { for(var i = 0; i < devices.length; i ++){ var device = devices[i]; if (device.kind === 'videoinput') {
navigator.mediaDevices.enumerateDevices().then(function (devices) {
for(var i = 0; i < devices.length; i ++){
var device = devices[i];
if (device.kind === 'videoinput') {
//any useful device info here?
}
}
});
较新的移动设备(例如三星galaxy s10)具有多个前后摄像头。调用enumerateDevices()时,我们会得到前后摄像头的列表。我们想从后摄像头列表中选择主摄像头。我们可以使用约束来选择后摄像头(面向:“环境”),但我们不知道如何区分每个设备的摄像头是主摄像头还是宽镜头摄像头
navigator.mediaDevices.enumerateDevices().then(function (devices) {
for(var i = 0; i < devices.length; i ++){
var device = devices[i];
if (device.kind === 'videoinput') {
//any useful device info here?
}
}
});
navigator.mediaDevices.enumerateDevices().then(函数(设备){
对于(变量i=0;i
设备
对象通常有设备。标签
描述它们的文本。但是,此文本是特定于设备的
如果您加载到浏览器中,它将为您提供可用媒体源(摄像头、麦克风)的下拉列表。标签标识了每个摄像头。它们因设备而异
在iPhone上,它是“前置摄像头”和“后置摄像头”
这是该页面的二维码 这取决于你所说的“主”后置摄像头。我们的用例需要一个支持自动对焦的后置摄像头(并非所有都支持)。检查您可以查询的约束,并正确调用navigator.mediaDevices.getUserMedia() 例如:
cam = await navigator.mediaDevices.getUserMedia({video: {facingMode: {exact: "environment"}, focusMode: {ideal: "continuous"}}}});
你提到了长焦镜头,所以也许你在追求缩放级别。这也是一个选择,但我自己还没有玩那么多
对约束API的支持因设备而异,而且非常挑剔。我建议建立备用选项,针对特定的操作系统版本/设备进行自定义查询,并进行大量实验,以确保您获得一台能够尽可能多地为您工作的摄像头。我面临着同样的问题。我想知道你是否解决了这个问题。如果你这样做了,如果你能分享你的解决方案,我会非常高兴。