如何在iOS 11 Safari上使用mediaDevices.enumerateDevices()来识别前置和后置摄像头

13

我正在使用getUserMedia()在iOS 11的Safari上捕获相机流。当我使用MediaDevices API获取摄像头列表时,标签为空白。有没有一种可靠的方法确定哪个相机指向哪个方向?

navigator.mediaDevices.enumerateDevices().then(function(devices) {
    devices.forEach(function(device) {
        if(device.kind === 'videoinput') {
            console.log(device);
            // Labels for both cameras are blank:
            // MediaDeviceInfo { deviceId: "123ABC", groupId: "", kind: "videoinput", label: "" }
        }
    });
});

1
你是否在调用enumerateDevices()之前调用了getUserMedia()? - oanfr
问题可能在于您在此处授予的用户权限。 - Nathan
1个回答

0

文档中表述的是用户可能需要授予权限才能提供带标签的相机数据。

文档中写道:

This might produce

videoinput: id = csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: id = RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: id = r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=

or if one or more MediaStreams are active or persistent permissions are granted:

videoinput: FaceTime HD Camera (Built-in) 
id=csO9c0YpAf274OuCPUA53CNE0YHlIr2yXCi+SqfBZZ8=
audioinput: default (Built-in Microphone)
id=RKxXByjnabbADGQNNZqLVLdmXlS0YkETYCIbg+XxnvM=
audioinput: Built-in Microphone id=r2/xw1xUPIyZunfV1lGrKOma5wTOvCkWfZ368XCndm0=
在我看来,这意味着问题可能出在用户权限上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接