如何使用getusermedia从多个后置摄像头检测主/长焦摄像头

sca*_*ner 5 javascript camera getusermedia

我们想使用后置摄像头进行扫描,并选择正确的后置摄像头——主摄像头,而不是广角镜头。

较新的移动设备(例如,三星 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?
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

O. *_*nes 0

device物体通常有device.label描述它们的文字。但是,此文本是特定于设备的。

如果您将https://webrtc.github.io/samples/src/content/devices/input-output/加载到浏览器中,它将为您提供可用媒体源(相机、麦克风)的下拉列表。标签标识每个摄像机。它们因设备而异。

在 iPhone 上,它是“前置摄像头”和“后置摄像头”。

这是该页面的二维码。在此输入图像描述