Guias específicos para plataformas
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
A grande maioria das experiências de realidade aumentada são "em tempo real". Elas exigem que os usuários estejam em um determinado lugar em um determinado momento, com o smartphone configurado em um modo de RA especial e aberto para um app de RA. Por exemplo, se um usuário quiser ver como um sofá de RA fica na sala de estar, ele terá que "colocar" o sofá no ambiente na tela enquanto estiver fisicamente no cômodo.
A API Recording and Playback elimina esse requisito de "tempo real", permitindo que você crie experiências de RA que podem ser visualizadas em qualquer lugar e a qualquer momento. A API Recording armazena o stream de vídeo de uma câmera, dados de IMU ou qualquer outro metadado personalizado que você queira salvar em um arquivo MP4. Em seguida, você pode enviar esses vídeos gravados para o ARCore usando a API Playback, que vai tratar o MP4 como um feed de sessão ao vivo. Ainda é possível usar uma sessão de câmera ao vivo, mas com essa nova API, seus aplicativos de RA podem optar por usar um MP4 pré-gravado em vez da sessão ao vivo.
Os usuários finais também podem aproveitar esse recurso. Não importa onde estejam, eles podem acessar qualquer vídeo gravado com a API Recording and Playback na galeria nativa e editar ou reproduzir objetos, efeitos e filtros de RA. Com esse recurso, os usuários podem fazer compras em RA enquanto estão no trem a caminho do escritório ou relaxando na cama.
Casos de uso para desenvolvimento com a API Recording and Playback
A API Recording and Playback remove as restrições de tempo e espaço da criação de apps de RA. Confira algumas maneiras de usar o recurso nos seus projetos.
Grave uma vez e teste em qualquer lugar
Em vez de ir fisicamente a um local sempre que precisar testar um recurso de RA, você pode gravar um vídeo usando a API Recording e reproduzi-lo em qualquer dispositivo compatível. Criando uma experiência em um shopping center? Não é necessário acessar esse recurso sempre que você quiser testar uma mudança. Basta gravar sua visita uma vez e depois iterar e desenvolver no conforto da sua mesa.
Reduzir o tempo de iteração
Em vez de gravar um vídeo para cada dispositivo Android que você quer oferecer suporte, para cada cenário que você quer testar, é possível gravar o vídeo uma vez e reproduzi-lo em vários dispositivos diferentes durante a fase de iteração.
Reduzir a carga de testes manuais nas equipes de desenvolvimento
Em vez de criar conjuntos de dados personalizados para cada novo recurso, aproveite os conjuntos de dados pré-gravados ao lançar novos recursos que incorporam profundidade ou as melhorias de rastreamento mais recentes do ARCore.
Compatibilidade do dispositivo
Você vai precisar do ARCore para gravar dados com a API Recording and Playback, mas não vai precisar dele para reproduzir. Os MP4s gravados com esse recurso são basicamente arquivos de vídeo com dados extras que podem ser acessados usando qualquer player de vídeo. É possível inspecionar esses arquivos com o ExoPlayer do Android ou qualquer player compatível que possa demuxar MP4s e gerenciar os dados adicionais adicionados pelo ARCore.
Como os dados de vídeo e RA são gravados para reprodução
O ARCore salva as sessões gravadas em arquivos MP4 no dispositivo de destino. Esses arquivos contêm várias faixas de vídeo e outros dados diversos. Depois que essas sessões forem salvas, você poderá indicar ao app que ele deve usar esses dados em vez de uma sessão de câmera ao vivo.
O que há em uma gravação?
O ARCore captura os seguintes dados em vídeo H.264. Você pode acessar em qualquer player de vídeo compatível com MP4 que possa alternar faixas. A faixa de maior resolução é a primeira da lista porque alguns leitores de vídeo compatíveis com MP4 reproduzem automaticamente a primeira faixa da lista sem permitir que você escolha qual faixa de vídeo reproduzir.
Faixa de vídeo principal (faixa de imagem da CPU)
O arquivo de vídeo principal grava o ambiente ou a cena para reprodução posterior. Por padrão, o ARCore grava a imagem da CPU 640x480 (VGA) usada para rastreamento de movimento como a transmissão de vídeo principal.
O ARCore não captura a textura da GPU (alta resolução) renderizada na tela como a imagem da câmera de passagem.
Se você quiser que um fluxo de imagens de alta resolução esteja disponível durante a reprodução, configure uma câmera que forneça uma imagem de CPU com a resolução desejada. Neste caso:
- O ARCore vai solicitar a imagem da CPU 640x480 (VGA) necessária para o rastreamento de movimento e a imagem da CPU de alta resolução especificada pela configuração da câmera.
- A captura do segundo fluxo de imagem da CPU pode afetar o desempenho do app, e dispositivos diferentes podem ser afetados de maneiras diferentes.
- Durante a reprodução, o ARCore vai usar a imagem de CPU de alta resolução que foi capturada durante a gravação como a textura da GPU durante a reprodução.
- A imagem da CPU de alta resolução vai se tornar o stream de vídeo padrão na gravação MP4.
A configuração da câmera selecionada durante a gravação determina a imagem da CPU e a transmissão de vídeo principal na gravação. Se você não selecionar uma configuração de câmera com uma imagem de CPU de alta resolução, esse vídeo será a primeira faixa no arquivo e será reproduzido por padrão, independentemente do player de vídeo usado.
Visualização do mapa de profundidade da câmera
É um arquivo de vídeo que representa o mapa de profundidade da câmera, gravado a partir do sensor de profundidade do hardware do dispositivo, como um sensor de tempo de vôo (ou sensor ToF), e convertido em valores de canal RGB. Esse vídeo deve ser usado apenas para fins de visualização.
Eventos de chamada de API
O ARCore registra medições dos sensores de giroscópio e acelerômetro do dispositivo. Ele também registra outros dados, alguns dos quais podem ser sensíveis:
- Versões do formato do conjunto de dados
- Versão do SDK do ARCore
- Versão do Google Play Services para RA
- Impressão digital do dispositivo (a saída de
adb shell getprop ro.build.fingerprint
) - Outras informações sobre os sensores usados para o rastreamento de RA
- Ao usar a API Geospatial do ARCore, a localização estimada do dispositivo, as leituras do magnetômetro e da bússola