Guide specifiche per la piattaforma
La maggior parte delle esperienze di realtà aumentata è "in tempo reale". Richiedono agli utenti di trovarsi in un determinato luogo in un determinato momento, con lo smartphone impostato su una modalità AR speciale e aperto su un'app AR. Ad esempio, se un utente volesse vedere come appare un divano AR nel suo soggiorno, dovrebbe "posizionare" il divano nell'ambiente sullo schermo mentre si trova fisicamente nella stanza.
L'API Recording and Playback elimina questo requisito "in tempo reale", consentendoti di creare esperienze AR che possono essere visualizzate ovunque e in qualsiasi momento. L'API Recording memorizza lo stream video di una videocamera, i dati IMU o qualsiasi altro metadato personalizzato che scegli di salvare in un file MP4. Puoi quindi inviare questi video registrati ad ARCore tramite l'API Playback, che tratterà il file MP4 come un feed della sessione in tempo reale. Puoi comunque utilizzare una sessione della videocamera in tempo reale, ma con questa nuova API le tue applicazioni AR possono scegliere di utilizzare un file MP4 preregistrato anziché la sessione in tempo reale.
Anche gli utenti finali possono usufruire di questa funzionalità. Indipendentemente da dove si trovano, possono recuperare qualsiasi video registrato con l'API Recording and Playback dalla galleria nativa e modificare o riprodurre oggetti, effetti e filtri AR. Con questa funzionalità, gli utenti possono fare acquisti AR in treno mentre vanno in ufficio o a letto mentre si rilassano.
Casi d'uso per lo sviluppo con l'API Recording and Playback
L'API Recording and Playback rimuove i vincoli di tempo e spazio per la creazione di app AR. Ecco alcuni modi in cui puoi utilizzarlo nei tuoi progetti.
Registra una volta, testa ovunque
Invece di recarti fisicamente in un luogo ogni volta che devi testare una funzionalità AR, puoi registrare un video utilizzando l'API Recording e riprodurlo utilizzando qualsiasi dispositivo compatibile. Stai creando un'esperienza in un centro commerciale? Non è necessario andare lì ogni volta che vuoi testare una modifica. Registra la visita una volta, poi esegui l'iterazione e lo sviluppo comodamente dalla tua scrivania.
Riduci il tempo di iterazione
Invece di dover registrare un video per ogni singolo dispositivo Android che vuoi supportare, per ogni singolo scenario che vuoi testare, puoi registrare il video una volta e riprodurlo su più dispositivi diversi durante la fase di iterazione.
Riduci il carico dei test manuali nei team di sviluppo
Invece di creare set di dati personalizzati per ogni nuova funzionalità, utilizza i set di dati preregistrati e lancia nuove funzionalità che incorporano la profondità o gli ultimi miglioramenti al rilevamento di ARCore.
Compatibilità dei dispositivi
ARCore è necessario per registrare i dati con l'API di registrazione e riproduzione, ma non per la riproduzione. I file MP4 registrati utilizzando questa funzionalità sono essenzialmente file video con dati aggiuntivi che possono essere visualizzati utilizzando qualsiasi video player. Puoi esaminarli con ExoPlayer di Android o con qualsiasi player compatibile in grado sia di demuxare i file MP4 sia di gestire i dati aggiuntivi aggiunti da ARCore.
Come vengono registrati i dati video e AR per la riproduzione
ARCore salva le sessioni registrate in file MP4 sul dispositivo di destinazione. Questi file contengono più tracce video e altri dati misti. Una volta salvate queste sessioni, puoi indicare alla tua app di utilizzare questi dati anziché una sessione della videocamera in tempo reale.
Che cosa contiene una registrazione?
ARCore acquisisce i seguenti dati nel video H.264. Puoi accedervi su qualsiasi video player compatibile con MP4 in grado di cambiare traccia. La traccia con la risoluzione più alta è la prima nell'elenco perché alcuni lettori video compatibili con MP4 riproducono automaticamente la prima traccia nell'elenco senza consentirti di scegliere quale traccia video riprodurre.
Traccia video principale (traccia immagine CPU)
Il file video principale registra l'ambiente o la scena per la riproduzione successiva. Per impostazione predefinita, ARCore registra l'immagine della CPU 640 x 480 (VGA) utilizzata per il monitoraggio del movimento come stream video principale.
ARCore non acquisisce la texture GPU (ad alta risoluzione) visualizzata sullo schermo come immagine della fotocamera passthrough.
Se vuoi che durante la riproduzione sia disponibile uno stream di immagini ad alta risoluzione, devi configurare una fotocamera che fornisca un'immagine CPU con la risoluzione desiderata. In questo caso:
- ARCore richiede sia l'immagine della CPU 640 x 480 (VGA) necessaria per il monitoraggio dei movimenti sia l'immagine della CPU ad alta risoluzione specificata dalla configurazione della fotocamera configurata.
- L'acquisizione del secondo stream di immagini della CPU potrebbe influire sulle prestazioni dell'app e su diversi dispositivi in modi diversi.
- Durante la riproduzione, ARCore utilizzerà l'immagine della CPU ad alta risoluzione acquisita durante la registrazione come texture della GPU.
- L'immagine della CPU ad alta risoluzione diventerà lo stream video predefinito nella registrazione MP4.
La configurazione della videocamera selezionata durante la registrazione determina l'immagine della CPU e lo stream video principale nella registrazione. Se non selezioni una configurazione della videocamera con un'immagine della CPU ad alta risoluzione, questo video sarà la prima traccia del file e verrà riprodotto per impostazione predefinita, indipendentemente dal video player utilizzato.
Visualizzazione della mappa di profondità della fotocamera
Si tratta di un file video che rappresenta la mappa di profondità della fotocamera, registrata dal sensore di profondità hardware del dispositivo, ad esempio un sensore di tempo di volo (o sensore ToF), e convertita in valori del canale RGB. Questo video deve essere utilizzato solo a scopo di anteprima.
Eventi di chiamata API
ARCore registra le misurazioni dei sensori giroscopio e accelerometro del dispositivo. Registra anche altri dati, alcuni dei quali potrebbero essere sensibili:
- Versioni del formato del set di dati
- Versione SDK ARCore
- Versione di Google Play Services per AR
- Impronta del dispositivo (l'output di
adb shell getprop ro.build.fingerprint
) - Ulteriori informazioni sui sensori utilizzati per il rilevamento AR
- Quando utilizzi l'API ARCore Geospatial, la posizione stimata del dispositivo, le letture del magnetometro e le letture della bussola