2016-12-25 6 views
1

Я пытаюсь создать приложение, которое использует камеру, но со следующим кодом он просто показывает белый экран. Когда приложение откроется, камера должна появиться.Пользовательская камера, белый экран // swift 3

import UIKit 
import AVFoundation 
import Foundation 

@IBOutlet var cameraView: UIView! 

var captureSession : AVCaptureSession? 
var stillImageOutput : AVCaptureStillImageOutput? 
var previewLayer : AVCaptureVideoPreviewLayer? 

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 

    let backCamera = AVCaptureDevice.defaultDevice(withMediaType: AVMediaTypeVideo) 


    do { 

     let input = try! AVCaptureDeviceInput (device: backCamera) 
     if (captureSession?.canAddInput(input) != nil) { 

      captureSession?.addInput(input) 

      stillImageOutput = AVCaptureStillImageOutput() 
      stillImageOutput?.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG] 

      if (captureSession?.canAddOutput(stillImageOutput) != nil) { 
       captureSession?.addOutput(stillImageOutput) 

       previewLayer = AVCaptureVideoPreviewLayer (session: captureSession) 
       previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
       previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 
       cameraView.layer.addSublayer(previewLayer!) 
       captureSession?.startRunning() 
      } 
     } 
    } catch { 

    } 
} 


    override func viewDidAppear(_ animated: Bool) { 
    super.viewDidAppear(animated) 
    previewLayer?.frame = cameraView.bounds 
} 

С помощью этого кода все, что я вижу, это белый экран вместо используемой камеры. Спасибо.

ответ

0

Так что кто-то на самом деле ответил на это, а затем удалил ответ. Он сказал: «Вы не дали разрешения». Он был прав.

Как включить это, перейдя в ваш info.plist (который можно найти: кнопкой мыши проект с план рядом с ним> идет к Targets и постукивания приложение> и глядя на то, что должен сказать " Пользовательские свойства объекта iOS ».)

После получения здесь (info.plst), перейдите в нижнюю часть списка и наведите указатель мыши на последний (что в моем случае было« обязательными возможностями устройства »). отображается и назовите его «Конфиденциальность - описание использования камеры». В поле рядом с ним «app name хочет использовать камеру для ... [xyz]»

Это должно исправить это. Это устранило мою проблему. Получил мою ссылку с этой должности. NSCameraUsageDescription in iOS 10.0 runtime crash?