Este guia do desenvolvedor guiará você pelas etapas para permitir que seu app grave o formato de cena SceneView
s em um arquivo de vídeo local. Ele usa a funcionalidade
disponível na classe VideoRecorder
, que faz parte da amostra de
Exemplo de gravação de vídeo
a partir da versão 1.6.0 do SDK do Sceneform para Android.
Criar e executar o app de exemplo
Para criar e executar o app de amostragem de VideoRecording:
- Verifique se você tem um projeto Sceneform no Android Studio e se o dispositivo Android está conectado à máquina de desenvolvimento via USB. Veja as etapas detalhadas no guia de início rápido.
- Importe a amostra de VideoRecording para seu projeto.
- No Android Studio, clique em Run . Em seguida, escolha seu dispositivo como destino da implantação e clique em OK para iniciar o app de amostra no seu dispositivo.
- Ao mover o dispositivo e colocar objetos 3D no espaço ao seu redor, clique no botão "Gravar" para começar a gravação e no botão "Parar" para interromper a gravação.
O vídeo gravado poderá ser acessado pelo rolo da câmera no dispositivo, em um
álbum de fotos chamado Sceneform
ou no caminho:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
Visão geral de como permitir que um app ofereça suporte à gravação de vídeos em formato de cena
Permitir que seu app grave cenas do Sceneform exige:
- Como solicitar permissões do app
- Inicialização do gravador de vídeo
- Iniciar e parar a gravação de vídeos
1. Solicitar permissões do app
Para gravar o arquivo de vídeo no armazenamento local, o app precisa
solicitar a permissão WRITE_EXTERNAL_STORAGE
adicionando a seguinte linha ao
AndroidManifest.xml
:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. Inicializar o gravador de vídeo
O SampleRecording Sample inclui uma classe chamada VideoRecorder
, que
encapsula toda a lógica de configurações necessárias para usar o
MediaRecorder para
capturar frames de um objeto SceneView
para criar um vídeo.
Para usar o gravador de vídeo, inicialize a classe
VideoRecorder
na sua atividade, por exemplo, em onCreate()
.
// Create a new video recorder instance.
videoRecorder = new VideoRecorder();
// Specify the AR scene view to be recorded.
videoRecorder.setSceneView(arFragment.getArSceneView());
// Set video quality and recording orientation to match that of the device.
int orientation = getResources().getConfiguration().orientation;
videoRecorder.setVideoQuality(CamcorderProfile.QUALITY_2160P, orientation);
3. Criar uma gravação de vídeo
Para começar a gravar, chame
onToggleRecord()
:// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
Para interromper a gravação, chame
onToggleRecord()
uma segunda vez:// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
Para recuperar o caminho do arquivo da gravação de vídeo, use
getVideoPath()
:// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
Outra opção é copiar o arquivo gravado na máquina de desenvolvimento usando adb:
adb pull /sdcard/…/path/to/recorded/video.mp4 .
Para determinar o local correto de imagens e vídeos para que eles apareçam corretamente no rolo da câmera, a classe VideoRecord
usa Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
.