Guías específicas para cada plataforma
Android (Kotlin/Java)
NDK de Android (C)
Unity (base de RA)
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 su teléfono configurado en un modo de RA especial y abierto en una app de RA. Por ejemplo, si un usuario desea ver cómo se ve un sofá de RA en su sala de estar, deberá "colocar" el sofá en el entorno de la pantalla mientras se encuentra físicamente en la habitación.
La API de grabación y reproducción elimina este requisito de "tiempo real", lo que te permite crear experiencias de RA que se puedan ver en cualquier lugar y momento. La API de grabación almacena la transmisión de video por Internet de una cámara, los datos de IMU o cualquier otro metadato personalizado que elijas guardar en un archivo MP4. Luego, puedes transmitir los videos grabados a ARCore a través de la API de reproducción, que tratará el archivo MP4 como un feed de sesión en vivo. Puedes usar una sesión de cámara en vivo, pero con esta nueva API, tus aplicaciones de RA pueden optar por usar una MP4 grabada previamente en lugar de esa sesión en vivo.
Los usuarios finales también pueden aprovechar esta función. Sin importar en qué parte de la vida real se encuentren, pueden obtener cualquier video grabado con la API de Recording y Playback de su galería nativa, así como editar o reproducir objetos, efectos y filtros de RA. Con esta función, los usuarios pueden realizar sus compras en RA mientras viajan en un tren camino a la oficina o en la cama.
Casos de uso para desarrollar con la API de grabación y reproducción
La API de Recording y Playback quita las restricciones de tiempo y espacio de la compilación de apps de RA. Estas son algunas formas en las que puedes usarlo 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 grabación y luego reproducirlo con cualquier dispositivo compatible. ¿Estás construyendo una experiencia en un centro comercial? No es necesario ir allí cada vez que quiera probar un cambio. Solo 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 grabar un video para cada dispositivo Android que quieras admitir, puedes grabar el video una vez y reproducirlo en varios dispositivos diferentes durante la fase de iteración.
Reduce la carga de prueba manual entre los equipos de desarrollo
En lugar de crear conjuntos de datos personalizados para cada función nueva, aprovecha los conjuntos de datos pregrabados y lanza nuevas funciones que incorporen profundidad o las mejoras más recientes de seguimiento de ARCore.
Compatibilidad con dispositivos
Necesitarás ARCore para grabar datos con la API de grabación y reproducción, pero no la necesitarás para reproducir contenido. Los archivos MP4 grabados con esta función son archivos de video con datos adicionales que se pueden ver con cualquier reproductor de video. Puedes inspeccionarlos con ExoPlayer de Android o cualquier reproductor compatible que pueda dimuxar 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 varios. Una vez que se guarden estas sesiones, puedes apuntar la app para que use estos datos en lugar de una sesión de cámara en vivo.
¿Qué incluye una grabación?
ARCore captura los siguientes datos en el video H.264. Puedes acceder a él en cualquier reproductor de video compatible con MP4 que sea capaz de cambiar de pista. La pista de resolución más alta es la primera de la lista porque algunos reproductores de video compatibles con MP4 reproducen automáticamente la primera pista de la lista sin que puedas elegir qué pista de video reproducir.
Pista de video principal (segmento de imagen de CPU)
El archivo de video principal graba el entorno o la escena para la reproducción posterior. De forma predeterminada, ARCore registra la imagen de la 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 traspaso.
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 con la resolución deseada. En este caso, ocurre lo siguiente:
- ARCore solicitará tanto 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 imagen 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 textura de GPU durante la reproducción.
- La imagen de CPU de alta resolución se convertirá en la transmisión de video por Internet predeterminada en la grabación MP4.
La configuración de cámara seleccionada durante la grabación determina la imagen de la 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 utilices.
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 a los valores de canal RGB. Este video solo debe utilizarse con fines de vista previa.
Eventos de llamada a la API
ARCore registra las mediciones del girómetro y los sensores del acelerómetro del dispositivo. También registra otros datos, algunos de los cuales pueden ser sensibles:
- Versiones de formatos de conjuntos de datos
- Versión del SDK de ARCore
- Google Play Services para la versión de RA
- Huella digital 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 usas la API geoespacial de ARCore, la ubicación estimada del dispositivo, las lecturas del magnetómetro y las brújulas