Метод takePicture в UIImagePickerController не делает снимок мгновенно каждый раз

У меня есть приложение камеры, которое использует мой пользовательский оверлей на объекте UIImagePickerController.

Я вызываю метод takePicture, чтобы сделать снимок, когда пользователь нажимает кнопку в моем режиме наложения. Что-то типа:

[imagePicker takePicture];
[self showProcessingIndicator];

Индикатор обработки - это обычная прялка, которая показывает, что делается снимок. Я замечаю, что часто камера не делает снимок сразу после вызова метода takePicture, и отображается индикатор обработки.

Кажется, что камера пытается настроить фокус (если он не в фокусе), а затем делает снимок. Наверное, это правильный поступок. Однако я также заметил задержку при съемке, даже если камера правильно сфокусирована и не меняет фокус. Это происходит не каждый раз, и когда именно это происходит, сказать сложно.

У меня вопрос: есть ли способ заставить камеру делать снимок мгновенно, игнорируя все остальное? Кроме того, возможно ли, что последующая обработка (например, отображение вида индикатора) заставляет камеру иногда реагировать медленнее?

Спасибо!


person AJJ    schedule 23.08.2010    source источник


Ответы (1)


Я также видел это и пришел к выводу, что съемка является достаточно ресурсоемкой операцией с точки зрения разговора с камерой, выделения / перемещения памяти и т.д. эта часть работает, вы не можете указать MobileMail, MobileiTunes и т. д., чтобы они не проверяли электронную почту и т. д. в этот конкретный момент.

Есть ли какая-то конкретная версия iOS или устройство, на котором это происходит чаще, чем на других? Создание снимка на моем iPhone 3G с iOS 4.0.x заняло до 30 секунд, но на iPhone 4 оно значительно улучшилось.

Индикатор активности поглотит некоторые ресурсы, поэтому его можно удалить, а вместо этого можно просто использовать звук. Проверьте, чтобы быть уверенным.

person JBRWilkinson    schedule 23.08.2010
comment
Спасибо! Индикатор активности убрал без заметной разницы. Думаю, нам пока придется смириться с этим. - person AJJ; 25.08.2010