iOS自定义摄像机或者拍照

本文介绍如何使用AVFoundation框架进行拍照及视频录制。主要内容包括:创建捕捉会话;配置摄像头和麦克风;设置输出如图片和视频文件;实现预览功能;以及如何进一步处理视频如添加滤镜。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 实时获得数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值