2016-10-26 5 views
1

это мой первый вопрос, поэтому, если это не объяснено, пожалуйста, дайте мне знать.AVCaptureDevicePosition.front не работает

Поэтому в основном я пытаюсь получить доступ к передней камере с этим кодом:

captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 

    let cameraDevice = AVCaptureDevice.defaultDevice(withDeviceType: AVCaptureDeviceType.builtInWideAngleCamera , mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.front) 
    print(cameraDevice!) 


    let error: NSError? = nil 

    do{ 
    let input = try AVCaptureDeviceInput(device: cameraDevice) 

     print(captureSession.canAddInput(input)) 

     if error == nil && captureSession.canAddInput(input){ 
      captureSession?.addInput(input) 

      stillImageOutput = AVCaptureStillImageOutput() 
      if captureSession.canAddOutput(stillImageOutput){ 
       captureSession.addOutput(stillImageOutput) 
       previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
       previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
       previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 
       cameraView.layer.addSublayer(previewLayer!) 
       stillImageOutput?.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG] 

       captureSession?.startRunning() 



      } 

     } 

с помощью этого кода print(captureSession.canAddInput(input)) возвращается false но когда я изменить положение к задним камерам все работает как шарм. Я что-то упускаю?

ответ

0

Я не уверен, какое устройство вы используете, но на iPhone 6/6plus это предустановленное разрешение слишком велико для передней камеры.

https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/Cameras/Cameras.html

Согласно документации Apple, на этих устройствах высокого разрешение захвата неподвижного изображения 1280 х 960. Попробуйте использовать более низкую предустановку и посмотреть, если он работает на передней камеры.

Это может объяснить, почему он отлично работает на задней камере, потому что это поддерживает более высокое разрешение.

+0

Спасибо за это! Это работает отлично! – viggurt

 Смежные вопросы

  • Нет связанных вопросов^_^