Guías específicas de la plataforma
Android (Kotlin/Java)
NDK de Android (C)
Unity (AR Foundation)
Unreal Engine

La gran mayoría de las experiencias de realidad aumentada son “en tiempo real”. Requieren que los usuarios estén en un lugar determinado a una hora determinada, con el teléfono configurado en un modo especial de RA y abierto en una app de RA. Por ejemplo, si un usuario quiere ver cómo se ve un sofá de RA en su sala de estar, debe “colocar” el sofá en el entorno de la pantalla mientras está físicamente en la habitación.
La API de Recording y Playback elimina este requisito “en tiempo real”, lo que te permite crear experiencias de RA que se pueden ver en cualquier lugar y en cualquier momento. La API de Recording almacena la transmisión de video de una cámara, los datos de IMU o cualquier otro metadato personalizado que elijas guardar en un archivo MP4. Luego, puedes enviar estos videos grabados a ARCore a través de la API de Playback, que tratará el MP4 como una transmisión de sesión en vivo. Aún puedes usar una sesión de cámara en vivo, pero con esta nueva API, tus aplicaciones de RA pueden optar por usar un MP4 pregrabado en lugar de esa sesión en vivo.

Los usuarios finales también pueden aprovechar esta función. Sin importar dónde se encuentren en la vida real, pueden extraer cualquier video grabado con la API de Recording y Playback de su galería nativa y editar o reproducir objetos, efectos y filtros de RA. Con esta función, los usuarios pueden hacer sus compras de RA mientras viajan en tren a la oficina o en la cama.
Casos de uso para el desarrollo con la API de Recording y Playback
La API de Recording y Playback elimina las restricciones de tiempo y espacio de la compilación de apps de RA. Estas son algunas formas en las que puedes usarla en tus propios proyectos.
Graba una vez, prueba en cualquier lugar
En lugar de ir físicamente a una ubicación cada vez que necesites probar una función de RA, puedes grabar un video con la API de Recording y, luego, reproducirlo con cualquier dispositivo compatible. ¿Estás creando una experiencia en un centro comercial? No es necesario que vayas allí cada vez que quieras probar un cambio. Simplemente graba tu visita una vez y, luego, itera y desarrolla desde la comodidad de tu escritorio.
Reduce el tiempo de iteración
En lugar de tener que grabar un video para cada dispositivo Android que quieras admitir y para cada situación que quieras probar, puedes grabar el video una vez y reproducirlo en varios dispositivos diferentes durante la fase de iteración.
Reduce la carga de pruebas manuales en los equipos de desarrollo
En lugar de crear conjuntos de datos personalizados para cada función nueva, aprovecha los conjuntos de datos pregrabados mientras lanzas funciones nuevas que incorporan profundidad o las mejoras de seguimiento más recientes de ARCore.
Compatibilidad con dispositivos
Necesitarás ARCore para grabar datos con la API de Recording y Playback, pero no para reproducir contenido. Los archivos MP4 grabados con esta función son, esencialmente, archivos de video con datos adicionales que se pueden ver con cualquier reproductor de video. Puedes inspeccionarlos con ExoPlayer de Android o con cualquier reproductor compatible que pueda desmultiplexar archivos MP4 y administrar los datos adicionales que agrega ARCore.
Cómo se graban los datos de video y RA para la reproducción
ARCore guarda las sesiones grabadas en archivos MP4 en el dispositivo de destino. Estos archivos contienen varias pistas de video y otros datos diversos. Una vez que se guardan estas sesiones, puedes indicarle a tu app que use estos datos en lugar de una sesión de cámara en vivo.
¿Qué contiene una grabación?
ARCore captura los siguientes datos en video H.264. Puedes acceder a ellos en cualquier reproductor de video compatible con MP4 que pueda cambiar de pista. La pista de mayor resolución es la primera de la lista, ya que algunos reproductores de video compatibles con MP4 reproducen automáticamente la primera pista de la lista sin permitirte elegir qué pista de video reproducir.
Pista de video principal (pista de imagen de CPU)
El archivo de video principal graba el entorno o la escena para su reproducción posterior. De forma predeterminada, ARCore graba la imagen de CPU de 640 x 480 (VGA) que se usa para el seguimiento de movimiento como la transmisión de video principal.
ARCore no captura la textura de GPU (de alta resolución) que se renderiza en la pantalla como la imagen de la cámara de paso.
Si quieres que una transmisión de imágenes de alta resolución esté disponible durante la reproducción, debes configurar una cámara que proporcione una imagen de CPU que tenga la resolución deseada. Estos son los pares:
- ARCore solicitará la imagen de CPU de 640 x 480 (VGA) que requiere para el seguimiento de movimiento y la imagen de CPU de alta resolución especificada por la configuración de la cámara configurada.
- La captura de la segunda transmisión de imágenes de CPU puede afectar el rendimiento de la app, y los diferentes dispositivos pueden verse afectados de manera diferente.
- Durante la reproducción, ARCore usará la imagen de CPU de alta resolución que se capturó durante la grabación como la textura de GPU.
- La imagen de CPU de alta resolución se convertirá en la transmisión de video predeterminada en la grabación MP4.
La configuración de la cámara seleccionada durante la grabación determina la imagen de CPU y la transmisión de video principal en la grabación. Si no seleccionas una configuración de cámara con una imagen de CPU de alta resolución, este video será la primera pista del archivo y se reproducirá de forma predeterminada, independientemente del reproductor de video que uses.
Visualización del mapa de profundidad de la cámara
Este es un archivo de video que representa el mapa de profundidad de la cámara, grabado desde el sensor de profundidad de hardware del dispositivo, como un sensor de tiempo de vuelo (o sensor ToF), y convertido en valores de canal RGB. Este video solo debe usarse para obtener una vista previa.
Eventos de llamadas a la API
ARCore registra las mediciones de los sensores de giroscopio y acelerómetro del dispositivo. También registra otros datos, algunos de los cuales pueden ser sensibles:
- Versiones de formato del conjunto de datos
- Versión del SDK de ARCore
- Versión de los Servicios de Google Play para RA
- Huella dactilar del dispositivo (el resultado de
adb shell getprop ro.build.fingerprint) - Información adicional sobre los sensores que se usan para el seguimiento de RA
- Cuando se usa la API de Geospatial de ARCore, la ubicación estimada del dispositivo, las lecturas del magnetómetro y las lecturas de la brújula