Ajoutez des données personnalisées lors de l'enregistrement sur AR Foundation ciblant Android

L'API Recording & Playback vous permet d'enregistrer une session et de l'utiliser à la place d'un flux de caméra en temps réel. Toutefois, ces enregistrements ne contiennent que des données vidéo et des données des capteurs. Vous pouvez également ajouter des données personnalisées à un enregistrement de session et les récupérer lors de la lecture, comme si elles faisaient partie d'une image de l'appareil photo.

ARCore n'inclut pas automatiquement de données personnalisées dans les enregistrements. Il vous permet plutôt d'ajouter des données personnalisées à un frame ARCore pendant l'enregistrement et de les récupérer à partir du frame pendant la lecture. Il vous appartient de programmer l'application de manière à ce que l'utilisateur récupère les données qu'il attend lorsqu'il lit sa session.

Cas d'utilisation des données personnalisées

Ajouter des données personnalisées aux enregistrements élargit les possibilités de vos applications de RA. Voici quelques cas d'utilisation spécifiques.

Utiliser la RA en déplacement

Auparavant, les utilisateurs ne pouvaient accéder aux expériences RA qu'au bon endroit et au bon moment. S'il voulait placer une lampe en RA dans son salon, il devait se tenir physiquement à l'endroit où il souhaitait la placer pour voir à quoi elle pourrait ressembler. Avec les pistes personnalisées, ils peuvent enregistrer leur salon une fois et ajouter du mobilier virtuel à la scène quand ils le souhaitent.

Co-créer des expériences de RA

Sans session en direct, les utilisateurs ont beaucoup plus d'options de retouche en RA, ce qui leur permet de créer et d'accéder à des contenus RA uniques à tout moment et en tout lieu. Par exemple, ils peuvent enregistrer un environnement donné, ajouter des effets de réalité augmentée et les partager avec leurs amis.

Prérequis

Avant de continuer, assurez-vous de bien comprendre les concepts fondamentaux de la RA et de savoir configurer une session ARCore.

Initialiser un enregistrement avec des données personnalisées

Pour initialiser un enregistrement avec des données personnalisées, procédez comme suit : Pour démarrer, arrêter et vérifier une session d'enregistrement, consultez Enregistrer et lire une session AR.

  1. Obtenez un ARCoreRecordingConfig.
  2. Créez un Track avec un UUID personnalisé. Toutes les données personnalisées seront enregistrées ici.
  3. Ajoutez Track à ARCoreRecordingConfig que vous avez créé lors de la configuration de la session.
// 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;

Tous les nouveaux canaux sont traités comme des enregistrements distincts, et chaque canal enregistré occupe son propre UUID.

Configurer le canal avec des données supplémentaires

Configurez le canal avec des données supplémentaires qui décrivent l'enregistrement de la session. Par exemple, vous pouvez "ajouter un tag" à un titre en ajoutant une note qui décrit l'emplacement et l'heure à laquelle vous avez enregistré la session : "Cette session a été enregistrée au centre commercial dans l'après-midi".

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

Configurer le canal avec un type MIME

Configurez un canal avec un type MIME qui décrit le type de données enregistrées dans le canal, pour assurer la compatibilité avec les outils externes.

Si vous ne spécifiez pas de type, les données seront catégorisées en tant que application/text. ARCore ignore le type MIME lors de la lecture des données.

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

Enregistrer des pistes de données personnalisées

Toutes les données de piste personnalisées sont enregistrées sur des images. L'heure à laquelle vous enregistrez des données sur un frame est la même que celle à laquelle les données seront renvoyées lors de la lecture. Par exemple, si vous appelez RecordTrackData() avec la valeur "A" à 00:07:02, vous obtiendrez "A" à la marque 00:07:02 lorsque le titre sera lu.

Pour enregistrer un canal de données personnalisé, appelez 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);
}

Lire des pistes de données personnalisées

Extrayez des données personnalisées à partir d'un enregistrement de session pendant la lecture.

Initialiser une lecture

Initialiser la lecture avec des données personnalisées revient à initialiser la lecture d'un enregistrement de session standard.

Renvoyer des données personnalisées

Appelez GetUpdatedTrackData() pour récupérer les données personnalisées enregistrées sur un frame. Il est possible de récupérer plusieurs données de piste à partir du même frame. Par exemple, si vous avez appelé RecordTrackData() deux fois sur le même frame lors de l'enregistrement, vous obtiendrez deux instances de TrackData lors de la lecture.

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

Une fois que TrackData se trouve dans un objet conteneur, extrayez les octets de données personnalisées.

// 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!
}

Étapes suivantes