iOS开发中摄像头的切换

上篇文章说到在采集视频的时候需要判断摄像头的方向,所以这里说下怎么切换摄像头的方向。

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
}

demo地址:https://github.com/yangguanghei/videoAndAudio

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。