Avcapturedevice - Получение списка камер, в том числе с виртуальными 2 -разIOS

Программируем под IOS
Ответить
Anonymous
 Avcapturedevice - Получение списка камер, в том числе с виртуальными 2 -раз

Сообщение Anonymous »

Таким образом, использование AVCaptureDevice.DiscoverySession в настоящее время дает вам возможность использовать каждую отдельную камеру.

Код: Выделить всё

let devices = AVCaptureDevice.DiscoverySession(deviceTypes: [.builtInWideAngleCamera], mediaType: .video, position: .back)
Но в новых телефонах некоторые из них имеют виртуальную двойную камеру (например, iPhone 15 Pro, 16 Pro, 17 Pro, 16e, iPhone Air). Теперь в iPhone 17 Pro в телеобъективе есть вторая виртуальная камера с 2-кратным увеличением, которая в итоге оказывается 8-кратной.
Первую широкоугольную камеру с виртуальным 2-кратным увеличением я искал следующим образом:

Код: Выделить всё

if let wideDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) {
for formats in wideDevice.formats {
if formats.supportedMaxPhotoDimensions.last!.width > 8000 {
self.is48MPCapable = true
if !formats.secondaryNativeResolutionZoomFactors.isEmpty {
self.isSecondTelephotoAvailable = true
}
}
}
}
< /code>
Теперь, когда ультра широкая камера имеет 48 Мп возможностей, вы должны запустить выше кода для каждого устройства: сверхширого, широкоугольный и телеобъектив. Я предполагаю, что у Apple будет более прямой метод. Есть ли лучший подход? < /P>
wideDevice.virtualDeviceSwitchOverVideoZoomFactors
Это кажется более прямым подходом, но работает только с двойными или тройными комбинациями камер.

Подробнее здесь: https://stackoverflow.com/questions/797 ... al-2x-crop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»