AVFoundation框架主要使用如下类:
(1) AVCaptureDevice:该对象代表物理输入设备,包括摄像头和麦克风。
(2) AVCaptureSession:该对象负责吧AVCaptureDevice捕捉得到的视频或声音数据输出到输出设备中。
(3) AVCaptureDeviceInput:它是AVCaptureInput的子类,开发者使用该对象从AVCaptureDevice设备获取数据。
(4) AVCaptureScreenInput:它是AVCaptureInput的子类,开发者使用该对象从屏幕获取数据。
(5) AVCaptureAudioDataOutput、AVCaptureAudioPreviewOutput、AVCaptureFileOutput、AVCaptureStillImageOutput、AVCaptureVideoDataOutput:它们都是AV CaptureOutput的子类,用于接受各种数据。
(6) AVCaptureAudioFileOutput、AVCaptureMovieFileOutput:他们是AVCapture FileOutput的子类,分别代表输出到音频文件、电影文件的输出端。
(7) AVCaptureVideoPreviewLayer:该对象是CALayer的子类,开发者只要创建它的实例,并为它设置ACCaptureSession,就可以非常方便地用它来实现拍摄预览。
使用AVFoundation实现拍照和录制视频的大致步骤如下:
(1) 使用AVCaptureDevice的静态方法获取设备。
(2) 利用AVCaptureDevice初始化AVCaptureDeviceInput对象。
(3) 初始化输出端。
(4) 创建AVCaptureSession对象。
(5) 将捕捉的数据输出到指定文件。