我已经实现了启动UIImagePickerController来捕获图片。第一次,后置摄像头显得很快,然后我切换到前置摄像头,它响应非常慢。这似乎花了将近15秒。我不知道为什么启动前置摄像头这么慢。
这是我的代码
UIImagePickerController * _picker = nil;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
_picker = [[[UIImagePickerController alloc] init] autorelease];
_picker.delegate = self;
_picker.allowsEditing = NO;
_picker.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentModalViewController:_picker animated:YES];
}
更新:我的设备是iPad 2(iOS 7.0),我也在我的设备上测试Facebook应用程序,当我切换到前置摄像头时它会立即响应。当我在Ipad mini(iOS 6.1.3)上测试我的应用程序时,它运行得很好,这个问题不会发生。我猜想,在初始化UIImagePickerController时,有人可能会把我弄清楚吗。
更新2:我写了另一个非常简单的项目。它会立即在rootViewController的viewDidLoad上启动一个UIImagePickerController,它运行良好,当我切换到前置摄像头时,UIImagePickerController会立即响应。有没有人有这个想法?
答案 0 :(得分:0)
在新线程上执行此操作将取消打开URL的延迟。我打赌它是同样的延迟。 注意:尚未在相机上测试。
[NSThread detachNewThreadSelector:@selector(openbrowser_in_background:) toTarget:self withObject:Object];
- (void)openbrowser_in_background:(NSString *)url
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString: url]];
}
您可能想将openURL更改为
[self presentModalViewController:_picker animated:YES];