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

Como Capturar Vídeos em Aplicativos iOS com AVCaptureMovieFileOutput

O framework AVFoundation da Apple fornece uma maneira robusta de capturar e processar mídia em dispositivos iOS. Um dos componentes principais para captura de vídeo é o AVCaptureMovieFileOutput, que permite gravar vídeo em um arquivo. Este artigo irá guiá-lo através do processo de configuração de uma sessão de captura de vídeo usando AVCaptureMovieFileOutput.

Exemplos:

  1. Configuração Básica de Captura de Vídeo:

    Primeiro, precisamos configurar uma sessão de captura e adicionar os dispositivos de entrada e saída apropriados.

    import AVFoundation
    import UIKit
    
    class VideoCaptureViewController: UIViewController {
       var captureSession: AVCaptureSession?
       var movieOutput: AVCaptureMovieFileOutput?
       var previewLayer: AVCaptureVideoPreviewLayer?
    
       override func viewDidLoad() {
           super.viewDidLoad()
           setupCaptureSession()
       }
    
       func setupCaptureSession() {
           captureSession = AVCaptureSession()
           guard let captureSession = captureSession else { return }
    
           // Configurar o dispositivo de entrada
           guard let videoCaptureDevice = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .back) else { return }
           let videoInput: AVCaptureDeviceInput
    
           do {
               videoInput = try AVCaptureDeviceInput(device: videoCaptureDevice)
           } catch {
               return
           }
    
           if captureSession.canAddInput(videoInput) {
               captureSession.addInput(videoInput)
           } else {
               return
           }
    
           // Configurar o dispositivo de saída
           movieOutput = AVCaptureMovieFileOutput()
    
           if let movieOutput = movieOutput, captureSession.canAddOutput(movieOutput) {
               captureSession.addOutput(movieOutput)
           }
    
           // Configurar a visualização de vídeo
           previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
           previewLayer?.frame = view.layer.bounds
           previewLayer?.videoGravity = .resizeAspectFill
           if let previewLayer = previewLayer {
               view.layer.addSublayer(previewLayer)
           }
    
           captureSession.startRunning()
       }
    
       func startRecording() {
           guard let movieOutput = movieOutput else { return }
           let outputURL = FileManager.default.temporaryDirectory.appendingPathComponent("output.mov")
           movieOutput.startRecording(to: outputURL, recordingDelegate: self)
       }
    
       func stopRecording() {
           movieOutput?.stopRecording()
       }
    }
    
    extension VideoCaptureViewController: AVCaptureFileOutputRecordingDelegate {
       func fileOutput(_ output: AVCaptureFileOutput, didFinishRecordingTo outputFileURL: URL, from connections: [AVCaptureConnection], error: Error?) {
           if let error = error {
               print("Error recording movie: \(error.localizedDescription)")
           } else {
               print("Movie recorded successfully to: \(outputFileURL)")
           }
       }
    }
  2. Iniciar e Parar a Gravação:

    Para iniciar a gravação, chame startRecording(), e para parar, chame stopRecording(). O vídeo será salvo no diretório temporário do dispositivo.

  3. Permissões de Câmera:

    Não se esqueça de adicionar a chave NSCameraUsageDescription no arquivo Info.plist para solicitar permissão ao usuário para acessar a câmera.

Considerações Finais:

O AVCaptureMovieFileOutput é uma ferramenta poderosa para capturar vídeos em aplicativos iOS. No entanto, para projetos mais complexos, como a gravação de vídeos em segundo plano ou a aplicação de filtros em tempo real, pode ser necessário explorar outros componentes do AVFoundation ou frameworks adicionais.

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.