2016-10-30 24 views
1

私はiOS 10.1のための迅速な3の中でカスタムカメラを設定しようとしています。AVCaptureSession Swift 3悪いexecの問題?

私は systemgroup.com.apple.configurationprofilesパスの

"[MC]システムグループコンテナ以下のエラーメッセージが /private/var/containers/Shared/SystemGroup/systemgroup.comあり得続けますプライバシー "私が追加しようとしている

『公共の実効ユーザ設定からの読み取り を.apple.configurationprofiles - Info.plistファイルの中にカメラの使用法の説明を』と、マイク1、それでも問題があります。

iPhoneからコードを切断すると、カメラの認証を促すメッセージが表示されることがあります。まるで「つまらない」と「停止」しているようです。

誰でもAVCaptureStillImageOutputを使用して回避する方法を知っていますか? iOS 10以降では非推奨となっており、私は自分のアプリを将来のために少し防弾にしたいと思っています。

import UIKit 
import AVFoundation 

class ViewController: UIViewController { 

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

@IBOutlet weak var cameraView: UIView! 

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

    let deviceDiscoverySession = AVCaptureDeviceDiscoverySession(deviceTypes: [AVCaptureDeviceType.builtInDuoCamera, AVCaptureDeviceType.builtInTelephotoCamera,AVCaptureDeviceType.builtInWideAngleCamera], mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.unspecified) 
    for device in (deviceDiscoverySession?.devices)! { 
     if device.position == AVCaptureDevicePosition.front{ 
      do { 
       let input = try AVCaptureDeviceInput(device: device) 
       if (captureSession?.canAddInput(input))!{ 
        captureSession?.addInput(input) 
        stillImageOutput?.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG] 
       } 
       if (captureSession?.canAddOutput(stillImageOutput))! { 
        captureSession?.addOutput(stillImageOutput) 
        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
        previewLayer?.videoGravity = AVLayerVideoGravityResizeAspectFill 
        previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 
        cameraView.layer.addSublayer(previewLayer!) 
        captureSession?.startRunning() 
       } 
      } catch{ 
       print("Error Occured when trying get camera") 
      } 
     } 
    } 
} 


override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


} 

答えて

2

解決済み!

下記正しいコード:

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    // setting up the camera session 
    captureSession = AVCaptureSession() 
    captureSession?.sessionPreset = AVCaptureSessionPreset1920x1080 
    let deviceDiscoverySession = AVCaptureDeviceDiscoverySession(deviceTypes: [AVCaptureDeviceType.builtInDuoCamera, AVCaptureDeviceType.builtInTelephotoCamera,AVCaptureDeviceType.builtInWideAngleCamera], mediaType: AVMediaTypeVideo, position: AVCaptureDevicePosition.front) 
    for device in (deviceDiscoverySession?.devices)! { 
     if device.position == AVCaptureDevicePosition.front{ 
      do { 
       let input = try AVCaptureDeviceInput(device: device) 
       if (captureSession?.canAddInput(input))!{ 
        captureSession?.addInput(input) 
        stillImageOutput = AVCaptureStillImageOutput() 
        stillImageOutput?.outputSettings = [AVVideoCodecKey:AVVideoCodecJPEG] 
       if (captureSession?.canAddOutput(stillImageOutput))! { 
        captureSession?.addOutput(stillImageOutput) 
        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession) 
        previewLayer?.videoGravity = AVLayerVideoGravityResizeAspect 
        previewLayer?.connection.videoOrientation = AVCaptureVideoOrientation.portrait 
        cameraView.layer.addSublayer(previewLayer!) 
        captureSession?.startRunning() 
        } 
       } 
      } catch{ 
       print("Error Occured when trying get camera") 
      } 
     } 
    } 
} 
+0

カメラを起動しますが、どのようにあなたが画面上にそれを提示するのですか? IOS 10のカメラで申し訳ありません初心者です。 – MLBDG

+0

私は、ストーリーボードのUIViewを@IBOulletでリンクすると、var cameraView:UIView!カメラは表示されません(はい、カメラ権限はinfo.plistに設定されています) – MLBDG

関連する問題