J'essaie d'intégrer une vue de caméra personnalisée et de suivre un code légèrement obsolète. J'ai eu plusieurs erreurs, mais je les ai cru fixé bar 2.Intégration de la caméra personnalisée Voir AVCaptureDevice
Voici le code actuel jusqu'à présent:
import Foundation
import AVFoundation
import UIKit
class setupView : UIViewController {
@IBOutlet var cameraView: UIView!
@IBOutlet var nameTextField: UITextField!
var captureSession = AVCaptureSession()
var stillImageOutput = AVCapturePhotoOutput()
var previewLayer = AVCaptureVideoPreviewLayer()
override func viewDidLoad() {
let session = AVCaptureDeviceDiscoverySession.init(deviceTypes: [.builtInWideAngleCamera], mediaType: AVMediaTypeVideo, position: .back)
if let device = session?.devices[0] {
if device.position == AVCaptureDevicePosition.back {
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)
captureSession.startRunning()
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.AVLayerVideoGravityResizeAspectFill
previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer)
previewLayer.bounds = cameraView.frame
previewLayer.position = CGPoint(x: cameraView.frame.width/2, y:cameraView.frame.height/2)
}
}
} catch {
}
}
}
}
@IBAction func takePhoto(_ sender: Any) {
}
@IBAction func submitAction(_ sender: Any) {
}
}
Je reçois actuellement 2 erreurs:
" Une valeur de type AVCapturePhotoOutput "n'a pas membre "OutputSettings"
" valeur de type "AVCaptureVideoPreviewLayer" n'a pas membre "AVLayerVideoGravityResizeAspectFill"
L'erreur « Valeur de type AVCapturePhotoOutput » Aucun membre "outputSettings" n'est supprimé si je retourne à AVCaptureStillImageOutput à la place, mais cela a été déprécié. –