swift4.2 之AVFoundation 调用摄像头
override func viewDidLoad() {
super.viewDidLoad()
setupScanSession()
startScan()
}
//MARK: 方法
func setupScanSession(){
do{
//设置捕捉设备
let device = AVCaptureDevice.default(for: AVMediaType.video)
guard let cameraDevice = device else {
//摄像头不可用
dismiss(animated: true, completion: nil)
return
}
let input = try AVCaptureDeviceInput(device: cameraDevice)
let output = AVCaptureMetadataOutput()
output.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
//设置会话
let scanSession = AVCaptureSession()
scanSession.canSetSessionPreset(AVCaptureSession.Preset.high)
if scanSession.canAddInput(input){
scanSession.addInput(input)
}
if scanSession.canAddOutput(output){
scanSession.addOutput(output)
}
//设置扫描二维码类型
output.