Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade

Como criar e utilizar AVCaptureVideoPreviewLayer no ambiente Apple

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:


1. Importe o framework AVFoundation no seu projeto:


import AVFoundation

2. Crie uma instância de AVCaptureSession para gerenciar a sessão de captura:


let captureSession = AVCaptureSession()

3. Configure a sessão de captura de acordo com as necessidades do seu aplicativo, definindo a resolução, taxa de quadros, dispositivo de captura, entre outros:


// 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)

4. Crie uma instância de AVCaptureVideoPreviewLayer e adicione-a à camada de visualização do seu aplicativo:


let videoPreviewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
videoPreviewLayer.videoGravity = .resizeAspectFill
videoPreviewLayer.frame = view.layer.bounds
view.layer.addSublayer(videoPreviewLayer)

5. Inicie a sessão de captura:


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()
}
}

To share Download PDF

Gostou do artigo? Deixe sua avaliação!
Sua opinião é muito importante para nós. Clique em um dos botões abaixo para nos dizer o que achou deste conteúdo.