IOS 调用摄像头

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    UIButton *button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame=CGRectMake(0, 0, 200, 50);
    [button setTitle:@"aa" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

-(void)click:(UIButton *)btn{
    
    UIImagePickerController *imagePicker=[[UIImagePickerController alloc] init];
    imagePicker.delegate=self;
//    imagePicker.view.frame=s
    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){
     imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera;
        
    }
   // imagePicker.allowsEditing=YES;
//    [self.view addSubview:imagePicker.view];
[self presentViewController:imagePicker animated:YES completion:^{
    
}];
}


- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo {
    
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    [self dismissViewControllerAnimated:YES completion:nil];
    NSLog(@"%@",info);
  UIImage *image=[info objectForKey:UIImagePickerControllerOriginalImage];

    self.image.image=image;
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
    [self dismissViewControllerAnimated:YES completion:^{
        
    }];
}
iOS开发中,使用Xcode创建应用程序并访问设备的摄像头通常涉及到AVFoundation框架。以下是基本步骤: 1. **导入框架**: 在需要使用摄像头功能的视图控制器(ViewController)中,首先导入`AVFoundation`框架: ```swift import AVFoundation ``` 2. **设置权限**: 在Info.plist文件中添加`NSCameraUsageDescription`键值对,提供相机使用的提示信息: ``` <key>NSCameraUsageDescription</key> <string>我们需要访问您的相机来...</string> ``` 3. **初始化 AVCaptureSession**: 创建一个`AVCaptureSession`实例,这是管理摄像头输入、输出和处理的对象: ```swift let captureSession = AVCaptureSession() ``` 4. **添加前置/后置摄像头输入**: 根据需求选择添加`AVCaptureDeviceInput`,比如前置摄像头: ```swift guard let frontCamera = AVCaptureDevice.default(for: .video) else { return } let input = try? AVCaptureDeviceInput(device: frontCamera) captureSession.addInput(input) ``` 5. **设置输出**: 添加`AVCaptureVideoDataOutput`以捕获视频数据,并处理来自摄像头的数据: ```swift let videoOutput = AVCaptureVideoDataOutput() videoOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue")) captureSession.addOutput(videoOutput) ``` 6. **开始录制或拍照**: 当准备好后,调用`captureSession.startRunning()`启动会话。 7. **处理回调**: 实现`AVCaptureVideoDataOutputSampleBufferDelegate`协议的回调方法,如`sampleBuffer(_:)`,在此处可以获取和处理视频帧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值