IOS调取系统摄像头

举报
清雨小竹 发表于 2022/09/25 00:18:30 2022/09/25
【摘要】 1、打开摄像头- (IBAction)Open:(id)sender { UIImagePickerController *picker = [[UIImagePickerController alloc] init]; if([UIImagePickerController isSourceTypeAvailable:...

      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];
      }
  
 

文章来源: zzzili.blog.csdn.net,作者:清雨小竹,版权归原作者所有,如需转载,请联系作者。

原文链接:zzzili.blog.csdn.net/article/details/49391873

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。