🚀 7.2 Gravação de Vídeo e Controle de Qualidade

Assim como nas fotos, a gravação de vídeos via Intent é a solução mais resiliente para o BoaViagem. Ela permite capturar memórias das viagens com controle sobre a duração e a qualidade, delegando o processamento pesado para o aplicativo de câmera do sistema.

Configurando a Captura de Vídeo

Ao disparar a Intent ACTION_VIDEO_CAPTURE, podemos passar parâmetros extras para otimizar o armazenamento e a experiência do usuário:

  1. Qualidade (EXTRA_VIDEO_QUALITY): 0 para baixa resolução (mMS/e-mail) e 1 para alta resolução.
  2. Duração (EXTRA_DURATION_LIMIT): Limite em segundos para evitar arquivos gigantescos que esgotam o armazenamento.
  3. Tamanho (EXTRA_SIZE_LIMIT): Limite em bytes para o arquivo final.

Implementação com ActivityResultLauncher (Java 17)

private Uri uriVideo;
 
// 1. Lançador para captura de vídeo
private final var captureVideoLauncher = registerForActivityResult(
    new ActivityResultContracts.CaptureVideo(), success -> {
        if (success) {
            Toast.makeText(this, "Vídeo gravado com sucesso!", Toast.LENGTH_SHORT).show();
        // A Uri já aponta para o arquivo que criamos no FileProvider
        vincularVideoComViagem(uriVideo);
    }
});

// 2. Iniciando a gravação

public void capturarVideo() {
    var videoFile = criarArquivoVideo(); // Gera um .mp4 no diretório do app
    if (videoFile != null) {
        uriVideo = FileProvider.getUriForFile(this, 
                getPackageName() + ".fileprovider", 
                videoFile);
        
    // Dispara a câmera com limite de 30 segundos e alta qualidade
    captureVideoLauncher.launch(uriVideo);
}

}

## Visualização do Vídeo
 

Para reproduzir o vídeo capturado, utilizamos uma Intent de visualização padrão:

public void visualizarVideo(Uri uri) {
    var intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(uri, "video/mp4");
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    startActivity(intent);
}

CAUTION

Espaço em Disco: Vídeos em alta qualidade (HD/4K) consomem centenas de megabytes por minuto. Sempre verifique o espaço disponível antes de iniciar a captura e utilize o EXTRA_SIZE_LIMIT para garantir a segurança operacional do dispositivo.

TIP

Ao lidar com vídeos, prefira armazená-los no diretório de arquivos internos do app (getExternalFilesDir) se eles forem exclusivos do BoaViagem. Isso garante que, se o usuário apagar o app, os vídeos temporários também serão removidos, mantendo o sistema limpo.


⬅️ Capítulo Anterior | Próximo Capítulo ➡️