En esta guía para desarrolladores, se explican los pasos que debes seguir a fin de permitir que tu app grabe SceneView
s de Sceneform en un archivo de video local. Usa la funcionalidad disponible en la clase VideoRecorder
, que está disponible como parte de la muestra VideoRecording Sample a partir de la versión 1.6.0 del SDK de Sceneform para Android.
Cómo compilar y ejecutar la app de muestra
Para compilar y ejecutar la app de VideoRecording Sample:
- Asegúrate de tener un proyecto de Sceneform en Android Studio y de que tu dispositivo Android esté conectado a la máquina de desarrollo por USB. Consulta la guía de inicio rápido para ver los pasos detallados.
- Importa el Ejemplo de VideoRecording a tu proyecto.
- En Android Studio, haz clic en Run
. Luego, elige tu dispositivo como destino de implementación y haz clic en OK para iniciar la app de muestra en tu dispositivo.
- A medida que muevas el dispositivo y coloques objetos 3D en el espacio que te rodea, haz clic en el botón Grabar para comenzar a grabar y en el botón Detener para detener la grabación.
Se podrá acceder al video grabado a través de la galería de fotos del dispositivo, en un álbum de fotos llamado Sceneform
o en la ruta:
/sdcard/Pictures/Sceneform/Sample<hex characters>.mp4
Descripción general sobre cómo habilitar una app para que admita la grabación de video de Sceneform
Para habilitar la app a fin de grabar escenas de Sceneform, se requiere lo siguiente:
- Cómo solicitar permisos de la app
- Inicializando la grabadora de video
- Cómo iniciar y detener la grabación de video
1. Cómo solicitar permisos de la app
Para poder escribir el archivo de video en el almacenamiento local, tu app debe solicitar el permiso WRITE_EXTERNAL_STORAGE
agregando la siguiente línea a tu AndroidManifest.xml
:
<application>
…
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2. Cómo inicializar la grabadora de video
La Muestra de VideoRecording incluye una clase llamada VideoRecorder
, que encapsula toda la lógica de configuración necesaria para usar MediaRecorder a fin de capturar fotogramas de un objeto SceneView
a fin de crear un video.
Para usar la grabadora de video, inicializa la clase VideoRecorder en tu actividad, por ejemplo, en 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. Cómo crear una grabación de video
Para comenzar a grabar, llama a
onToggleRecord()
:// Returns true if recording has started. boolean recording = videoRecorder.onToggleRecord();
Para detener la grabación, vuelve a llamar a
onToggleRecord()
:// Returns false if recording has stopped. boolean recording = videoRecorder.onToggleRecord();
Para recuperar la ruta del archivo de la grabación de video, usa
getVideoPath()
:// Determine absolute file path of video recording. String videoPath = videoRecorder.getVideoPath().getAbsolutePath();
De manera opcional, copia el archivo grabado en tu máquina de desarrollo mediante adb:
adb pull /sdcard/…/path/to/recorded/video.mp4 .
Para determinar la ubicación correcta de las imágenes y los videos a fin de que se muestren correctamente en la galería de fotos, la clase VideoRecord
usa Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)
.