iOS 相机开发总结

# Camera 组件讲解

 

IOS相机

 

## UIImagePickerController

 

1.IOS中扑捉照片和视频最简单的方法是使用UIImagePickerController,一个封装了完整视频捕获管线和相机 UI 的 view controller。

 

2.UIImagePickerController通过cameraOverlayView自定义UI(需要绑定事件)

 

 

#import <UIKit/UIKit.h>

#import <MobileCoreServices/MobileCoreServices.h>

-(void)setupCameraViewController {

 

    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

        NSArray *availableMediaTypes = [UIImagePickerController

                                        availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

        NSLog(@"availableMediaTypes = %@",availableMediaTypes);

        if ([availableMediaTypes containsObject:(NSString *)kUTTypeMovie]) {

            // 支持视频录制

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

            cameraViewController.sourceType = UIImagePickerControllerSourceTypeCamera;

            cameraViewController.mediaTypes = @[(NSString *)kUTTypeMovie];  // 设置相机的媒体类型 (图片 视频 livephoto)

            cameraViewController.delegate = self;

            cameraViewController.videoQuality = UIImagePickerControllerQualityTypeHigh;  // 设置录制视频的质量

           

            UIView *cameraOverlay = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 68)];

            cameraOverlay.backgroundColor = [UIColor redColor];

            cameraViewController.showsCameraControls = NO;

            cameraViewController.cameraOverlayView = cameraOverlay;

           

            [self presentViewController:cameraViewController animated:YES completion:nil];

        }

    }

    }

 

 

## AVFoundation

 

AVFoundation提供了比UIImagePickerController更多的关于处理捕获视频、图片的方法。

 

### AVFoundation相关类

 

AVFoundation 框架基于以下几个类实现图像、视频的捕捉 ,通过这些类可以访问来自相机设备的原始数据并控制它的组件。

 

***AVCaptureDevice*** 是关于相机硬件的接口。它被用于控制硬件特性,诸如镜头的位置、曝光、闪光灯等。

 

***AVCaptureDeviceInput*** 提供来自设备的数据。

 

***AVCaptureOutput*** 是一个抽象类,描述 capture session 的结果。以下是三种关于静态图片捕捉的具体子类:

 

AVCaptureStillImageOutput 用于捕捉静态图片

 

AVCaptureMetadataOutput 启用检测人脸和二维码

 

AVCaptureVideoOutput 为实时预览图提供原始帧

 

***AVCaptureSession*** 管理输入与输出之间的数据流,以及在出现问题时生成运行时错误。

 

***AVCapt

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值