Различия между камерами между UIImagePickerController и AVCaptureSession на iPhone

Я пытаюсь создать замену для UIImagePickerController, используя AVCaptureSession с AVCaptureDeviceInput и AVCaptureStillImageOutput в качестве входных/выходных данных. соответственно.

Для предварительного просмотра потока камеры я использую AVCaptureVideoPreviewLayer.

Теперь он работает правильно для захвата и хранения фотографий, как и камера по умолчанию.

Однако я обнаружил 3 проблемы, которые не смог решить:

  • снятые фотографии не получают того качества, которое обеспечивает камера по умолчанию
  • угол обзора/захвата укорачивается, как и при захвате видео на камере по умолчанию
  • нет возможности управлять специфическими параметрами камеры, такими как вспышка

Есть ли способ достичь уровня UIImagePickerController, используя более настраиваемый подход (например, AVFoundation или любой другой)?


person paulo    schedule 01.02.2011    source источник
comment
Что именно вы хотите сделать, может быть, вам не нужен пиксельный буфер, может, просто что-то наложить? Если вы хотите получить высококачественный буфер, такой как UIImagePickerController, чтобы вы могли выполнить некоторую обработку изображений, я не думаю, что это возможно (или, по крайней мере, непросто, потому что, как вы сказали, общедоступный API для управления вспышкой или фокусом недоступен). С AVFoundation вы получите необработанные буферы ввода с камеры, так что не ожидайте, что они будут такими хорошими;)   -  person nacho4d    schedule 01.02.2011
comment
Мне нужно больше настроек, чем наложение на UIImagePickerController, но если нет другого способа получить его функции, я думаю, мне придется придерживаться его... Спасибо за ваш комментарий.   -  person paulo    schedule 01.02.2011


Ответы (1)


Ознакомьтесь с разделом «Сеанс 409 — Использование камеры с AV Foundation» в видеороликах WWDC 2010. . Судя по видео, похоже, что вы можете решить все три проблемы с помощью AVFoundation.

Надеюсь это поможет!

person donkim    schedule 01.02.2011
comment
Сдохни, донки! Я печатаю это с компьютера с Windows, поэтому в данный момент я ничего не могу проверить, но я просмотрел PDF-файл сеанса 409 и, как вы сказали, все мои 3 проблемы решены и многое другое! Спасибо, что указали на это. Спас мой день! - person paulo; 02.02.2011
comment
Теперь можно подтвердить, что все работает как положено, используя информацию из указанного сеанса WWDC 2010. Ключ заключается в использовании AVCaptureSessionPresetPhoto и необходимой настройке входного AVCaptureDevice. Еще раз спасибо, @donkim! - person paulo; 02.02.2011