Как я могу переключаться между 11 профессиональными камерами, используя AVFoundation в XCode - PullRequest
0 голосов
/ 11 апреля 2020

Я только начал изучать Swift в XCode и создаю простое приложение для камеры, чтобы начать работу. У меня есть кнопка, которая переключается между передней и задней камерами, но я хочу добавить опцию для переключения между телекамерой и сверхширокоугольным объективом на iPhone 11 Pro.

Я создал функции для запуска новой CaptureSession для каждого объектива (если обнаружен), но мне было просто интересно, как я могу вызвать эти функции для функции UIbutton

То, что заставило меня почесать голову Это оператор if, используемый для переключения между передней и задней камерой, гласит: if input.device.position == .back {

Это только особенности, если передняя или задняя, ​​а не сам объектив. Каким будет эффективный способ сделать кнопку, а затем при каждом нажатии кнопки переключаться с передней части на широкую, Tele, Ultra Wide и обратно на переднюю?

Извиняюсь за неправильное использование терминологии. Я очень новичок в кодировании в Swift. Спасибо!

    {
        guard let CurrentCameraInput: AVCaptureInput = CaptureSession?.inputs.first else {
            return
        }

        if let input = CurrentCameraInput as? AVCaptureDeviceInput

        {



            if input.device.position == .back {


            SwitchToFrontCamera() }


            if input.device.position == .front {

            SwitchToBackCamera()

              }



            }
        } 

1 Ответ

0 голосов
/ 11 апреля 2020

Добро пожаловать!

Проверьте этот инициализатор для AVCaptureDevice. Вы можете указать DeviceType, который хотите использовать, например .builtInUltraWideCamera или .builtInTelephotoCamera.

Вы можете использовать AVCaptureDevice.DiscoverySession, чтобы получить список всех устройств захвата, доступных для вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...