上篇文章说到在采集视频的时候需要判断摄像头的方向,所以这里说下怎么切换摄像头的方向。
0.获取到视频输入对象(AVCaptureDeviceInput)
1.通过视频输入对象判断当前摄像头方向
2.重新创建视频输入
3.使用session添加视频输入
4.将新的视频输入赋值给全局视频输入
代码:
// 切换摄像头
@objc fileprivate func switchCamera(){
guard let videoInput = videoInput else { return }
let position:AVCaptureDevice.Position = videoInput.device.position == AVCaptureDevice.Position.front ? .back : .front
guard let devices = AVCaptureDevice.devices() as? [AVCaptureDevice] else { return }
guard let device = devices.filter( {$0.position == position} ).first else { return }
guard let input = try? AVCaptureDeviceInput(device: device) else { return }
session.beginConfiguration()
session.removeInput(videoInput)
if session.canAddInput(input) {
session.addInput(input)
}
session.commitConfiguration()
self.videoInput = input
}