iOS自定义摄像机或者拍照

    xiaoxiao2021-04-15  31

    AVFoundtion拍照和视频录制相关类 输入设备:麦克风/摄像头 输出设备:图片/视频 AVCaptureSession:媒体捕捉会话,把捕捉到的音视频数据输出到输出设备中. AVCaptureDevice:输入设备.设置一些物理设备的属性(聚焦,白平衡等) AVCaptureDeviceInput:输入数据管理. AVCaptureOutput:输出数据管理.子类有 nsdata类型的(AVCaptureDataOutput)(AVCaptureAudioDataOutput,AVCaptureStillImageOutput,AVCaptureVedioDataOutput) 文件类型的(AVCaptureFileOutput),其中子类:AVCaptureAudioFileOutput,AVCaptureMovieFileOutput 上面这些一旦添加到会话张,就会在所有相符的输入输出设备之间建立连接. AVCaptureVedioPreviewLayer:相机拍摄预览图层,可以实时查看拍照或视频录制效果,需要指定相对应的AVCaptureSession对象. 使用AVFoundtion拍照或者录制视频的一般步骤: 1.创建AVCaptureSesion对象 2.使用使用AVCaptureDevice获取设备(摄像头或者麦克风) 3.利用AVCaptureDevice初始化AVCaptureDevideInput对象 4.初始化输出数据对象,拍照就用AVCaptureStillImageOutput对象,视频就用AVCaptureMovieFileOutput对象. 5.将数据输入和输出对象添加到会话管理对象AVCaptureSession中. 6.创建视频预览图层AVCaptureVedioPreviewLayer并指定媒体会话,添加图层到显示容器中,调用AVCaptureSession的startRuning方法开始捕获. 7.将捕获的音频或视频数据输出到指定文件. AVCapturDataOutput和AVAssetWriter 如果想要更多的操作,比如对视频添加滤镜要使用这种组合.这些输出会将各自捕捉到的视频和音频的样本缓存,接着发送到他们的代理 配置一个 asset writer 需要定义一个输出 URL 和文件格式,并添加一个或多个输入来接收采样的缓冲。我们还需要将输入的 expectsMediaInRealTime 属性设置为 YES,因为它们需要从 capture session 实时获得数据。
    转载请注明原文地址: https://ju.6miu.com/read-671697.html

    最新回复(0)