您的位置:首页 > 移动开发 > IOS开发

IOS调取系统摄像头

2015-10-25 00:32 393 查看
1、打开摄像头
- (IBAction)Open:(id)sender {

UIImagePickerController *picker = [[UIImagePickerController alloc] init];

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

picker.sourceType = UIImagePickerControllerSourceTypeCamera;

NSArray *temp_MediaTypes = [UIImagePickerController availableMediaTypesForSourceType:picker.sourceType];

picker.mediaTypes = temp_MediaTypes;

picker.delegate = self;

picker.allowsImageEditing = YES;

}

[self presentModalViewController:picker animated:YES];

[picker release];

}

2.拍照回调

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

BOOL success;

NSFileManager *fileManager = [NSFileManager defaultManager];

NSError *error;

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

if ([mediaType isEqualToString:@"public.image"]){

UIImage *image = [info objectForKey:@"UIImagePickerControllerEditedImage"];

NSLog(@"found an image");

NSString *imageFile = [documentsDirectory stringByAppendingPathComponent:@"temp.jpg"];

NSLog(@"%@", imageFile);

success = [fileManager fileExistsAtPath:imageFile];

if(success) {

success = [fileManager removeItemAtPath:imageFile error:&error];

}

imageView.image = image;

[UIImageJPEGRepresentation(image, 1.0f) writeToFile:imageFile atomically:YES];

//SETIMAGE(image);

//CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);

}

else if([mediaType isEqualToString:@"public.movie"]){

NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];

NSLog(@"%@", videoURL);

NSLog(@"found a video");

NSData *videoData = [NSData dataWithContentsOfURL:videoURL];

/****************************************/

NSString *videoFile = [documentsDirectory stringByAppendingPathComponent:@"temp.mov"];

NSLog(@"%@", videoFile);

success = [fileManager fileExistsAtPath:videoFile];

if(success) {

success = [fileManager removeItemAtPath:videoFile error:&error];

}

[videoData writeToFile:videoFile atomically:YES];

//CFShow([[NSFileManager defaultManager] directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Documents"]]);

//NSLog(videoURL);

}

[picker dismissModalViewControllerAnimated:YES];

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

[picker dismissModalViewControllerAnimated:YES];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: