UIImagePickerController中的takePicture方法每次都不会立即拍照

时间:2010-08-23 20:39:13

标签: iphone uiimagepickercontroller

我有一个相机应用程序,它在UIImagePickerController对象上使用我的自定义叠加层。

当用户按下叠加视图上的按钮时,我调用takePicture方法拍照。类似的东西:

[imagePicker takePicture];
[self showProcessingIndicator];

处理指示器是通常的旋转轮,显示正在拍摄照片。我注意到,在调用takePicture方法后,相机通常不会立即拍照,并且正在显示处理指示。

相机似乎试图调整其焦点(如果它没有焦点)然后拍照。这可能是正确的做法。但是,即使相机正确聚焦并且没有改变焦点,我也注意到拍照延迟。这种情况并不是每次都会发生,而且很难说它到底发生了什么。

我的问题是:有没有办法迫使相机立即拍照,忽略其他一切?此外,后续处理(例如显示指示器视图)是否可能导致相机有时响应较慢?

谢谢!

1 个答案:

答案 0 :(得分:0)

我也看到了这一点,并得出结论,在与相机设备交谈,分配/移动内存等方面拍摄照片是一项相当耗费资源的操作。同时您可以调整应用程序以避免吸收当这件作品正在运行时,你无法告诉MobileMail,MobileiTunes等,在那个精确的时刻,检查电子邮件等。

是否有任何特定的iOS版本或设备比其他版本更多?使用iOS 4.0.x在我的iPhone 3G上拍照需要30秒,但在iPhone 4上有很大改进。

活动指示器将吸收一些资源,因此这可能是移除的候选者,也许只是使用声音。测试以确定。