一、打開攝像頭 - (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]; }