2017-03-01 9 views
0

フロントカメラを作りたいと思っていますが、スウィフトにフロントカメラを組み込めませんでした。スウィフトでフロントカメラを使用することはできません

私は唯一の「前」に「バック」に変更すると、カメラは動作しませんでした...

は、どのように私はフロントカメラを使用することができますか?

var captureSesssion: AVCaptureSession! 
var stillImageOutput: AVCapturePhotoOutput? 
var previewLayer: AVCaptureVideoPreviewLayer? 
var captureDevice : AVCaptureDevice! 

override func viewDidLoad() { 
    super.viewDidLoad() 

    captureSesssion = AVCaptureSession() 
    stillImageOutput = AVCapturePhotoOutput() 

    captureSesssion.sessionPreset = AVCaptureSessionPreset1920x1080 

    captureDevice = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .front) 
    //When change "front" to "back", camera is built. 

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

     if (captureSesssion.canAddInput(input)) { 
      captureSesssion.addInput(input) 

      if (captureSesssion.canAddOutput(stillImageOutput)) { 
       captureSesssion.addOutput(stillImageOutput) 
       captureSesssion.startRunning() 

       previewLayer = AVCaptureVideoPreviewLayer(session: captureSesssion) 
       previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
       previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 

       self.view.layer.addSublayer(previewLayer!) 

       previewLayer?.position = CGPoint(x: self.view.frame.width/2, y: self.view.frame.height/2) 
       previewLayer?.bounds = self.view.frame 
      } 
     } 
    } 
    catch { 
     print(error) 
    } 
+0

テストデバイスのセルフカメラはカメラアプリケーションで動作しますか? – owlswipe

+0

はい、iPhone SEを使用しており、カメラアプリでフロントカメラを使用できます。 – bao

答えて

3

iPhone 7とiPhone 7 Plusのフロントカメラは1080pを記録できますが、古いモデルでは720pしか記録できません。したがって、セッションプリセットを変更する必要があります。

captureSesssion.sessionPreset = AVCaptureSessionPreset1280x720 
+0

ありがとう!それはうまくいった:) – bao

関連する問題