Guías específicas para plataformas
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 en un momento determinado, con el teléfono configurado en un modo de RA especial y abierto a una app de RA. Por ejemplo, si un usuario quisiera ver cómo se ve un sofá de RA en su sala de estar, tendría que "colocarlo" en el entorno en pantalla mientras está 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 pueden ver en cualquier lugar y momento. La API de grabación almacena la transmisión de video por Internet, los datos de IMU o cualquier otro metadato personalizado que elijas para 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 un feed de sesión en vivo. Puedes seguir usando una sesión de cámara en vivo, pero con esta nueva API, tus aplicaciones de RA pueden optar por usar un MP4 grabado previamente en lugar de esa sesión en vivo.
Los usuarios finales también pueden aprovechar esta función. No importa dónde se encuentren, pueden abrir cualquier video grabado con la API de grabación y reproducción desde su galería nativa y editar o reproducir objetos, efectos y filtros de RA. Con esta función, los usuarios pueden realizar compras de RA mientras viajan en un tren hacia la oficina o descansan en la cama.
Casos de uso para desarrollar con la API de Recording and Playback
La API de grabación y reproducción quita las restricciones de tiempo y espacio de la compilación de apps de RA. Estas son algunas formas en que puedes usarlo en tus propios proyectos.
Graba una vez y 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 creando una experiencia en un centro comercial? No es necesario que vayas allí cada vez que quieras probar un cambio. Simplemente registra 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, 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 las pruebas manuales entre los equipos de desarrollo
En lugar de crear conjuntos de datos personalizados para cada función nueva, aprovecha los conjuntos de datos pregrabados cuando lances funciones nuevas que incorporen 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 and Playback, pero no la necesitarás para reproducir contenido. Los archivos MP4 grabados con esta función son, en esencia, 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 demuxificar archivos MP4 y administrar los datos adicionales que agrega ARCore.
Cómo se graban los datos de video y de RA para su 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 guarden 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 él en cualquier reproductor de video compatible con MP4 que pueda cambiar de pista. La pista con la resolución más alta es la primera en 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 la CPU)
El archivo de video principal graba el entorno o la escena para su reproducción posterior. De forma predeterminada, ARCore registra la imagen de la CPU de 640 × 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) en la que se renderiza la pantalla como imagen de cámara de transferencia.
Si quieres que haya una transmisión de imágenes de alta resolución disponible durante la reproducción, debes configurar una cámara que proporcione una imagen de CPU que tenga la resolución deseada. En este caso, ocurre lo siguiente:
- ARCore solicitará la imagen de CPU de 640 x 480 (VGA) que requiere para el seguimiento de movimiento y la imagen de alta resolución de la CPU especificada por la configuración configuración de la cámara.
- Capturar el segundo flujo de imágenes de la 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 alta resolución de la CPU que se capturada durante la grabación como la textura de GPU durante la reproducción.
- 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 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 uses.
Visualización del mapa de profundidad de la cámara
Es un archivo de video que representa el mapa de profundidad de la cámara, grabado con el sensor de profundidad de hardware del dispositivo, como un sensor de tiempo de vuelo (o sensor ToF), y convertido a valores de canal RGB. Este video solo se debe usar con fines de 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 en formato del conjunto de datos
- Versión del SDK de ARCore
- Servicios de Google Play para RA versión
- 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 de ARCore Geospatial, la ubicación aproximada del dispositivo, las lecturas del magnetómetro y las lecturas de la brújula