我正在尝试整合自定义摄像头视图,并遵循一些稍微过时的代码。我有一些错误,但我认为已经解决他们吧2.集成自定义摄像头视图AVCaptureDevice
这是迄今为止当前代码:
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) {
}
}
目前我得到2个错误:
“型AVCapturePhotoOutput的值“不具有成员‘outputSettings’
”的类型‘AVCaptureVideoPreviewLayer’值没有构件 ‘AVLayerVideoGravityResizeAspectFill’
错误“类型AVCapturePhotoOutput价值”很清楚没有成员“outputSettings”被删除,如果我恢复到AVCaptureStillImageOutput,但是这已折旧。 –