一,基础
AVFoundation框架中有几个类实现图像捕捉 ,通过这些类可以访问来自相机设备的原始数据并控制它的组件
- AVCaptureDevice 是相机硬件相关,可以设置硬件属性:曝光,镜头位置,闪光灯,白平衡等
- AVCaptureSession 管理输入输出的数据流
- AVCaptureVideoPreviewLayer 是 CALayer 的子类,可用于自动显示相机产生的实时图像
二,权限(这里只用了摄像头和麦克风)
三,Demo(权限校验部分略过)
首先应该初始化音视频的输入输出,添加到Session中
//1 视频的输入
let devices = AVCaptureDevice.devices()
//1.1默认获取前置摄像头
guard let device = devices.filter({$0.position == .front}).first else {
print("get front video AVCaptureDevice failed!")
return
}
//1.2视频输入
guard let input = try? AVCaptureDeviceInput(device: device) else {
print("get front video AVCaptureDeviceInput fai