🚀 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:
- Qualidade (
EXTRA_VIDEO_QUALITY):0para baixa resolução (mMS/e-mail) e1para alta resolução. - Duração (
EXTRA_DURATION_LIMIT): Limite em segundos para evitar arquivos gigantescos que esgotam o armazenamento. - 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_LIMITpara 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.