2017-11-10 88 views
-1

我想使用的所有相机调整工作除了zoomfactor。我失去了为什么会发生这种情况......有什么想法?自定义曝​​光和对焦设置正常工作。我没有意识到iOS中有什么改变吗?AVFoundation videoZoomFactor不工作(斯威夫特)

captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPresetPhoto 
    stillImageOutput = AVCapturePhotoOutput() 

    let device = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) 

    do{ 
     do{ 
      try device?.lockForConfiguration() 
      device?.setFocusModeLockedWithLensPosition(focusValue, completionHandler: {(time) -> Void in}) 
      device?.setExposureModeCustomWithDuration(CMTimeMake(1, exposureValue), iso: ISOValue, completionHandler: {(time) -> Void in}) 
      let zoomFactor:CGFloat = 16 
      device?.videoZoomFactor = zoomFactor 
      device?.unlockForConfiguration() 

     }catch{ 
      print(error) 
     } 

     stillImageOutput.isHighResolutionCaptureEnabled = true 
     let input = try AVCaptureDeviceInput(device: device) 
     if(captureSession.canAddInput(input)){ 
      captureSession.addInput(input) 
      if(captureSession.canAddOutput(stillImageOutput)){ 
       captureSession.addOutput(stillImageOutput) 

       captureSession.startRunning() 
       let captureVideoLayer: AVCaptureVideoPreviewLayer = AVCaptureVideoPreviewLayer.init(session: captureSession) 
       captureVideoLayer.frame = self.previewView.bounds 
       captureVideoLayer.videoGravity = AVLayerVideoGravityResizeAspectFill 
       self.previewView.layer.insertSublayer(captureVideoLayer, at: 0) 
      } 
     } 
    }catch{ 
     print(error) 
    } 
+0

我仍然认为videozoomfactor在ios11中坏了。任何人可以验证? – user2345335

回答

0

原来我只是在错误的位置设置我的设备设置。如果lockconfig try块被移到捕获会话的东西下面,它就会按照预期工作。