2017-11-10 2 views
-1

Alle Kameraeinstellungen, die ich verwenden möchte, funktionieren mit Ausnahme des Zoomfaktors. Ich bin verloren, warum das passiert ... irgendwelche Ideen? Die benutzerdefinierten Einstellungen für Belichtung und Fokus funktionieren einwandfrei. Hat sich in iOS etwas geändert, was mir nicht bewusst ist?AVFoundation videoZoomFactor funktioniert nicht (Swift)

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

ich denke immer noch Videozoomfactor ist in ios11 gebrochen. kann das jemand verifizieren? – user2345335

Antwort

0

stellt sich heraus, ich habe gerade meine Geräteeinstellungen an der falschen Stelle eingestellt. Wenn der lockconfig try-Block unter den Capture-Session-Code verschoben wird, funktioniert er wie beabsichtigt.

Verwandte Themen