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.
- Ottieni un
ARCoreRecordingConfig
. - Crea un nuovo
Track
con un UUID personalizzato. Tutti i dati personalizzati verranno salvati qui. - Aggiungi
Track
aARCoreRecordingConfig
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
- Scopri come creare la tua app con Registrazione e Riproduzione consultando il codelab Registrazione e Riproduzione.