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.