超常用的iOS呼叫相機基本技能,測試完記錄一下。
使用UIImagePickerController (簡單、快速)
- (void) initCamera{
NSLog(@"initCamera");
dispatch_async(dispatch_get_main_queue(), ^{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
//檢查是否支援此Source Type(相機)
if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
NSLog(@"Access Camera Device");
//設定影像來源為相機
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;
//顯示UIImagePickerController
[self presentViewController:imagePicker animated:YES completion:nil];
}
else {
//提示使用者,目前設備不支援相機
NSLog(@"No Camera Device");
}
});
}
//使用者按下確定時
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
//取得剛拍攝的相片(或是由相簿中所選擇的相片)
UIImage *image=[info objectForKey:UIImagePickerControllerEditedImage];
//設定ImageView的Image物件,例如:
//yourImageView.image = image;
[picker dismissViewControllerAnimated:YES completion:^{}];
}
//使用者按下取消時
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
//一般情況下沒有什麼特別要做的事情
[picker dismissViewControllerAnimated:YES completion:^{}];
}
使用AV Foundation
優點就是彈性比較大,速度快