ios UIImagePickerController在第一次延迟切换到前置摄像头

时间:2013-12-24 08:54:26

标签: ios uiimagepickercontroller

我已经实现了启动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会立即响应。有没有人有这个想法?

1 个答案:

答案 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];