Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
AVCaptureVideoPreviewLayer é uma classe do framework AVFoundation da Apple que permite exibir a visualização de vídeo de uma sessão de captura em tempo real. Essa camada é especialmente útil ao desenvolver aplicativos que envolvem a captura de vídeo, como aplicativos de câmera, videoconferência e reconhecimento de imagem.
Para utilizar AVCaptureVideoPreviewLayer em um aplicativo iOS, siga os passos abaixo:
import AVFoundation
let captureSession = AVCaptureSession()
// Configura a resolução da captura
captureSession.sessionPreset = .high
// Obtém o dispositivo de captura (por exemplo, a câmera traseira)
guard let captureDevice = AVCaptureDevice.default(for: .video) else { return }
// Cria uma instância de AVCaptureDeviceInput com o dispositivo de captura
guard let captureDeviceInput = try? AVCaptureDeviceInput(device: captureDevice) else { return }
// Adiciona o AVCaptureDeviceInput à sessão de captura
captureSession.addInput(captureDeviceInput)
let videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer.videoGravity = .resizeAspectFill
videoPreviewLayer.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer)
captureSession.startRunning()
Agora, a visualização de vídeo da sessão de captura será exibida na camada de visualização do seu aplicativo.
Exemplo completo:
import UIKit
import AVFoundation
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let captureSession = AVCaptureSession()
captureSession.sessionPreset = .high
guard let captureDevice = AVCaptureDevice.default(for: .video) else { return }
guard let captureDeviceInput = try? AVCaptureDeviceInput(device: captureDevice) else { return }
captureSession.addInput(captureDeviceInput)
let videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer.videoGravity = .resizeAspectFill
videoPreviewLayer.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer)
captureSession.startRunning()
}
}