Oglądałem ten film wideo, aby utworzyć niestandardowy widok z kamery. https://www.youtube.com/watch?v=w0O3ZGUS3pkSwift 3 - Widok niestandardowej kamery AVCapture
jednak ze względu na iOS 10 i Swift 3 Zmiany wiele rzeczy nie były istotne już
następujące jest kod wyszedłem po zmianie funkcji przestarzałej do nowego ones..however nie ma błędu, ale też nie widząc podgląd na 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!");
}
}
}
}
Czy powinien jednak uruchomić jeden raz niezależnie? –
Prawdopodobnie, ale denerwuje mnie –
Na przykład, czy nie ma dwóch aparatów skierowanych tyłem do iPhone'a 7+? Jest to mało prawdopodobne, ale możesz mieć nieprzyjemną niespodziankę na przyszłym sprzęcie ... –