Swift 3 - Vue de caméra personnalisée AVCapture
Je suivais à travers cette vidéo pour faire un custom vue de la caméra.
https://www.youtube.com/watch?v=w0O3ZGUS3pk
cependant en raison de l'iOS 10 et swift 3 changements de beaucoup de choses n'étaient pas pertinentes plus
voici le code que j'ai obtenu après modification obsolète fonction pour les nouveaux..mais il n'y a pas d'erreur, mais aussi de ne pas voir un aperçu sur la UIView
import UIKit
import AVFoundation
class ViewController: UIViewController, AVCapturePhotoCaptureDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
@IBOutlet weak var cameraView: UIView!
var captureSession = AVCaptureSession();
var sessionOutput = AVCapturePhotoOutput();
var sessionOutputSetting = AVCapturePhotoSettings(format: [AVVideoCodecKey:AVVideoCodecJPEG]);
var previewLayer = AVCaptureVideoPreviewLayer();
override func viewWillAppear(_ animated: Bool) {
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);
if(captureSession.canAddOutput(sessionOutput)){
captureSession.addOutput(sessionOutput);
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession);
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill;
previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.portrait;
cameraView.layer.addSublayer(previewLayer);
}
}
}
catch{
print("exception!");
}
}
}
}
source d'informationauteur Jeff Huang
Vous devez vous connecter pour publier un commentaire.
Vous avez oublié de démarrer votre session:
et définir le cadre de votre
previewLayer
:p.s. Une fois que vous avez ajouté à votre session d'entrées et de sorties, vous devez sortir de cette boucle.