Я пытаюсь настроить пользовательскую камеру в Swift 3 для iOS 10.1.
Я продолжаю получать сообщение об ошибке ниже
«[MC] Контейнер системной группы для пути systemgroup.com.apple.configurationprofiles — /private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles Чтение общедоступных эффективных пользовательских настроек».
Я попытался добавить «Конфиденциальность - Описание использования камеры» в info.plist и микрофон, но проблема все еще есть.
Иногда, когда я отключаю свой 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.
}
}