美文网首页
初识AVFoundation框架1

初识AVFoundation框架1

作者: 愁云 | 来源:发表于2017-03-11 00:06 被阅读10次

    一.基本概念

    感谢http://www.jianshu.com/p/f7146092e640等博主的技术分享。

    AVCaptureSession:媒体(音、视频)捕获会话,负责把捕获的音视频数据输出到输出设备中。一个AVCaptureSession可以有多个输入输出。它用于协调输入与输出之间的数据流。

    AVCaptureDevice:输入设备,包括麦克风、摄像头,通过该对象可以设置物理设备的一些属性(例如相机聚焦、白平衡等),也就是物理输入设备,例如摄像头与麦克风。

    AVCaptureDeviceInput:设备输入数据管理对象,可以根据AVCaptureDevice创建对应的AVCaptureDeviceInput对象,该对象将会被添加到AVCaptureSession中管理。代表了AVCaptureDevice采集的输入数据源。

    AVCaptureOutput:输出数据管理对象,用于接收各类输出数据,通常使用对应的子类,其代表了输出数据源。

    AVCaptureAudioDataOutput、

    AVCaptureStillImageOutput、

    AVCaptureVideoDataOutput、

    AVCaptureFileOutput,

    该对象将会被添加到AVCaptureSession中管理。注意:前面几个对象的输出数据都是NSData类型,而AVCaptureFileOutput代表数据以文件形式输出,类似的,AVCcaptureFileOutput也不会直接创建使用,通常会使用其子类:AVCaptureAudioFileOutput、

    AVCaptureMovieFileOutput。

    AVCaptureVideoPreviewLayer:相机拍摄预览图层,是CALayer的子类,使用该对象可以实时查看拍照或视频录制效果,创建该对象需要指定对应的AVCaptureSession对象

    使用AVFoundation拍照和录制视频的一般步骤:

    (1)创建AVCaptureSession对象。

    (2)使用AVCaptureDevice的静态方法获得需要使用的设备,例如拍照和录像就需要获得摄像头设备,录音就要获得麦克风设备。

    (3)利用输入设备AVCaptureDevice初始化AVCaptureDeviceInput对象。

    (4)初始化输出数据管理对象,如果要拍照就初始化AVCaptureStillImageOutput对象;如果拍摄视频就初始化AVCaptureMovieFileOutput对象。

    (5)将数据输入对象AVCaptureDeviceInput、数据输出对象AVCaptureOutput添加到媒体会话管理对象AVCaptureSession中。

    (6)创建视频预览图层AVCaptureVideoPreviewLayer并指定媒体会话,添加图层到 显示容器中,调用AVCaptureSession的startRuning方法开始捕获。

    (7)将捕获的音频或视频数据输出到指定文件。

    相关文章

      网友评论

          本文标题:初识AVFoundation框架1

          本文链接:https://www.haomeiwen.com/subject/nsenkttx.html