Swift 视野中的AVF相机
我有很多问题,试图获得一个视图,以显示我的后摄像头饲料。我看了所有的苹果文档,得出了这个结论,但它似乎只做了一个黑屏。我还在plist中添加了烫发,现在正在一台真正的设备上运行。我不需要它来拍照或保存任何东西。只需在视图中实时显示相机即可Swift 视野中的AVF相机,swift,avfoundation,Swift,Avfoundation,我有很多问题,试图获得一个视图,以显示我的后摄像头饲料。我看了所有的苹果文档,得出了这个结论,但它似乎只做了一个黑屏。我还在plist中添加了烫发,现在正在一台真正的设备上运行。我不需要它来拍照或保存任何东西。只需在视图中实时显示相机即可 import UIKit import AVFoundation class ViewController: UIViewController { @IBOutlet weak var cameraView: UIView!
import UIKit
import AVFoundation
class ViewController: UIViewController {
@IBOutlet weak var cameraView: UIView!
var captureSession = AVCaptureSession()
var previewLayer = AVCaptureVideoPreviewLayer()
override func viewDidLoad() {
super.viewDidLoad()
loadCamera()
}
func loadCamera() {
let device = AVCaptureDevice.default(.builtInWideAngleCamera, for: AVMediaType.video, position: .back)
do {
let input = try AVCaptureDeviceInput(device: device!)
if captureSession.canAddInput(input) {
captureSession.addInput(input)
previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
previewLayer.videoGravity = AVLayerVideoGravity.resizeAspectFill
previewLayer.connection?.videoOrientation = AVCaptureVideoOrientation.portrait
cameraView.layer.addSublayer(previewLayer)
}
} catch {
print(error)
}
}
}
欢迎光临
问题是,在当前设置中,实际上没有数据流(视频帧)。您需要至少将一个输入和一个输出附加到捕获会话。预览层本身不算作输出,因为它只会附加到输入和输出之间的现有连接
因此,要修复它,只需将AVCapturePhotoOutput
添加到会话中(可能在添加层之前),但永远不要使用它。预览层应该开始显示帧
在添加输入和输出之前,您可能还希望将会话的
会话预设设置为.photo
。这将导致会话生成具有理想尺寸的视频帧,以便在设备屏幕上显示。感谢您的精彩回复。我对swift的了解非常有限,所以我很难让它继续工作。我想我只是不明白该怎么做。