Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Dispositivos Móveis / Aula
Para capturar vídeos utilizando a Activity padrão do Android não é muito diferente de capturar fotos. A Listagem 5 nos mostrará o código necessário para atingir o mesmo resultado e depois analisaremos as diferenças entre os dois métodos de captura.
private static final int CAPTURAR_VIDEO = 200;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
File mediaStorageDir = new File(
Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "NomeDaPasta");
if (!mediaStorageDir.exists()){
mediaStorageDir.mkdirs();
}
String timeStamp =
new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File file = new File(mediaStorageDir.getPath() + File.separator +
"VID_"+ timeStamp + ".mp4");
fileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 30);
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, (1024 * 1024));
startActivityForResult(intent, CAPTURAR_VIDEO);
}
Podemos perceber no código que poucas mudanças são necessárias para capturar vídeo, no lugar de fotos. A primeira mudança notável é a mudança na action do Intent. Agora passamos a ACTION_VIDEO_CAPTURE. Além disso, mudamos o formato e o prefixo do arquivo a ser salvo, indicando agora que o mesmo é um vídeo e mantendo o timeStamp como nome. As últimas linhas que mostram uma diferença importante e dizem respeito aos extras que são colocados no Intent.
O primeiro extra novo que vemos no Intent é o EXTRA_VIDEO_QUALITY. Esse atributo pode receber o valor 0, indicando que o vídeo deve ser gravado na menor qualidade possível, que também é a que ocupa menos espaço. Já o segundo extra, o EXTRA_DURATION_LIMIT, indica, em segundos, o tempo máximo que o vídeo poderá ter antes de ser finalizado. Por fim, o EXTRA_SIZE_LIMIT indica, em bytes, o tamanho máximo que o vídeo poderá atingir antes de ser parado. Com todos esses extras configurados, podemos iniciar a Activity da câmera normalmente, através do Intent criado.
Versão 5.3 - Todos os Direitos reservados