Filter out true-depth-camera in getAvailableCameraDevices

This commit is contained in:
Marc Rousavy
2021-03-17 15:30:17 +01:00
parent 84fb076bc4
commit 9f30348053
3 changed files with 10 additions and 11 deletions

View File

@@ -89,7 +89,14 @@ final class CameraViewManager: RCTViewManager {
final func getAvailableCameraDevices(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
withPromise(resolve: resolve, reject: reject) {
let discoverySession = AVCaptureDevice.DiscoverySession(deviceTypes: getAllDeviceTypes(), mediaType: .video, position: .unspecified)
return discoverySession.devices.map {
let devices = discoverySession.devices.filter({
if #available(iOS 11.1, *) {
// exclude the true-depth camera. The True-Depth camera has YUV and Infrared, can't take photos!
return $0.deviceType != .builtInTrueDepthCamera
}
return true
})
return devices.map {
return [
"id": $0.uniqueID,
"devices": $0.physicalDevices.map(\.deviceType.descriptor),