Aggiungere dati personalizzati durante la registrazione sulla piattaforma AR che ha come target Android

L'API Recording & Playback ti consente di registrare una sessione e utilizzarla al posto di un feed della videocamera in tempo reale. Tuttavia, queste registrazioni contengono solo dati video e dei sensori. Puoi anche aggiungere dati personalizzati a una registrazione della sessione e farli restituire durante la riproduzione, come se facessero parte di un'immagine della fotocamera.

ARCore non include automaticamente dati personalizzati nelle registrazioni. Consente invece di aggiungere dati personalizzati a un frame ARCore durante la registrazione e di recuperarli dal frame durante la riproduzione. Spetta a te programmare l'app in modo che l'utente riceva i dati che si aspetta quando riproduce la sessione.

Casi d'uso per i dati personalizzati

L'aggiunta di dati personalizzati alle registrazioni amplia le possibilità per le tue app AR. Di seguito sono riportati alcuni casi d'uso specifici.

Usare l'AR ovunque ti trovi

In passato, gli utenti potevano accedere alle esperienze AR solo nel luogo e nel momento giusti. Se volevano posizionare una lampada AR in salotto, dovevano trovarsi fisicamente nella posizione per vedere come poteva apparire la lampada. Con i canali personalizzati, possono registrare una volta il soggiorno e aggiungere mobili virtuali alla scena ogni volta che vogliono.

Co-creare esperienze AR

Senza il requisito della sessione in tempo reale, gli utenti hanno molte più opzioni per l'editing AR, il che consente loro di creare e accedere a contenuti AR unici in qualsiasi momento e luogo. Ad esempio, possono registrare un determinato ambiente, aggiungere effetti di realtà aumentata e condividerli con gli amici.

Prerequisiti

Prima di procedere, assicurati di conoscere i concetti fondamentali dell'AR e come configurare una sessione ARCore.

Inizializzare una registrazione con dati personalizzati

Per inizializzare una registrazione con dati personalizzati: Per avviare, interrompere e controllare una sessione di registrazione, consulta Registrare e riprodurre una sessione AR.

  1. Ottieni un ARCoreRecordingConfig.
  2. Crea un nuovo Track con un UUID personalizzato. Tutti i dati personalizzati verranno salvati qui.
  3. Aggiungi Track a ARCoreRecordingConfig che hai creato durante la configurazione della sessione.
// Initialize a new track with a custom UUID.
// Make sure to save the UUID because it is the ID that you will use
// to get your data back during playback.
var track = new Track {
 Id = Guid.Parse("de5ec7a4-09ec-4c48-b2c3-a98b66e71893") // from UUID generator
};

// Add the Track to the recordingConfig.
// recordingConfig must already be configured.
List<Track> tracks = new List<Track>();
tracks.Add(track);
recordingConfig.Tracks = tracks;

Tutti i nuovi canali vengono considerati come registrazioni separate, con ogni canale registrato che occupa il proprio UUID.

Configurare il canale con dati aggiuntivi

Configura la traccia con dati aggiuntivi che descrivono la registrazione della sessione. Ad esempio, puoi "taggare" una traccia aggiungendo una nota che descriva la posizione e l'ora in cui hai registrato la sessione: "Questa sessione è stata registrata al centro commerciale nel pomeriggio".

// Set additional data on this track.
// For example, describe where you recorded the session.
byte[] metadata = ...
track.Metadata = metadata;

Configurare il canale con un tipo MIME

Configura una traccia con un tipo MIME che descriva il tipo di dati registrati nella traccia, per la compatibilità con strumenti esterni.

Se non specifichi un tipo, i dati verranno classificati come application/text. ARCore ignora il tipo MIME durante la lettura dei dati.

// Set a MIME type for compatibility with external tools.
track.MimeType = "text/csv";

Registra tracce di dati personalizzate

Tutti i dati dei canali personalizzati vengono registrati nei frame. L'ora in cui registri i dati in un frame è la stessa in cui i dati verranno restituiti durante la riproduzione. Ad esempio, se chiami RecordTrackData() con il valore "A" a 00:07:02, riceverai "A" al segno 00:07:02 durante la riproduzione della traccia.

Per registrare un canale di dati personalizzato, chiama RecordTrackData().

// Place an AR lamp in a room.
if (placeLampButtonWasPressed) {
  // Convert the lamp data into a byte array.
  var lampData = new byte[] { (byte) Lamp.FLOOR };  // a floor lamp
  recordingManager.RecordTrackData(trackGuid, lampData);
}

Riproduci le tracce di dati personalizzati

Estrarre dati personalizzati da una registrazione della sessione durante la riproduzione.

Inizializzare una riproduzione

L'inizializzazione di una riproduzione con dati personalizzati è la stessa dell'inizializzazione di una riproduzione di una registrazione della sessione normale.

Restituire dati personalizzati

Chiama GetUpdatedTrackData() per recuperare i dati personalizzati registrati in un frame. È possibile recuperare più dati traccia dallo stesso frame. Ad esempio, se hai chiamato RecordTrackData() due volte nello stesso frame durante la registrazione, durante la riproduzione verranno restituite due istanze di TrackData.

// Fetch the data recorded on a select frame and place it in a
// container object.
var trackDataList = recordingManager.GetUpdatedTrackData(trackGuid);

Una volta che TrackData si trova in un oggetto contenitore, estrai i byte dei dati personalizzati.

// Extract the bytes of custom data from the list of track data.
foreach (TrackData trackData in trackDataList) {
  var data = trackData.Data;
  Lamp lamp = Lamp.fromByte(data[0]); // This is the lamp!
}

Passaggi successivi