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
  1. Crie uma instância de AVCaptureSession para gerenciar a sessão de captura:
let captureSession = AVCaptureSession()
  1. 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)
  1. 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)
  1. 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.