Benutzerdefinierte Daten bei der Aufnahme mit AR Foundation hinzufügen, die auf Android ausgerichtet ist

Mit der Recording & Playback API kannst du eine Sitzung aufzeichnen und anstelle eines Echtzeit-Kamerafeeds verwenden. Diese Aufzeichnungen enthalten jedoch nur Video- und Sensordaten. Sie können einer Sitzungsaufzeichnung auch benutzerdefinierte Daten hinzufügen. Die Daten werden Ihnen während der Wiedergabe so zurückgegeben, als wären sie Teil eines Kamerabildes.

ARCore schließt benutzerdefinierte Daten nicht automatisch in Aufzeichnungen ein. Vielmehr können Sie einem ARCore-Frame während der Aufzeichnung benutzerdefinierte Daten hinzufügen und diese Daten während der Wiedergabe aus dem Frame abrufen. Sie müssen die App so programmieren, dass der Nutzer bei der Wiedergabe der Sitzung die erwarteten Daten erhält.

Anwendungsfälle für benutzerdefinierte Daten

Wenn du benutzerdefinierte Daten zu Aufnahmen hinzufügst, stehen dir noch mehr Möglichkeiten für deine AR-Apps zur Verfügung. Im Folgenden sind einige spezifische Anwendungsfälle aufgeführt.

AR unterwegs verwenden

Früher konnten Nutzer nur am richtigen Ort und zur richtigen Zeit auf AR-Erlebnisse zugreifen. Wenn sie eine AR-Lampe im Wohnzimmer platzieren wollten, mussten sie sich vor Ort aufhalten, um zu sehen, wie die Lampe dort aussehen könnte. Mit benutzerdefinierten Tracks können sie ihr Wohnzimmer einmal aufnehmen und jederzeit virtuelle Möbel hinzufügen.

Gemeinsam mit anderen AR-Erlebnisse schaffen

Ohne Livesitzung haben Nutzer viel mehr Möglichkeiten zur Bearbeitung von AR-Inhalten. So können sie jederzeit und überall einzigartige AR-Inhalte erstellen und darauf zugreifen. Sie können beispielsweise eine bestimmte Umgebung aufnehmen, Augmented-Reality-Effekte hinzufügen und sie mit Freunden teilen.

Voraussetzungen

Machen Sie sich mit den grundlegenden AR-Konzepten und zur Konfiguration einer ARCore-Sitzung vertraut, bevor Sie fortfahren.

Aufzeichnung mit benutzerdefinierten Daten initialisieren

So initialisieren Sie eine Aufzeichnung mit benutzerdefinierten Daten: Weitere Informationen zum Starten, Stoppen und Prüfen einer Aufzeichnung finden Sie unter AR-Sitzungen aufzeichnen und abspielen.

  1. Fordern Sie ein ARCoreRecordingConfig an.
  2. Erstellen Sie einen neuen Track mit einer benutzerdefinierten UUID. Alle benutzerdefinierten Daten werden hier gespeichert.
  3. Fügen Sie den Track dem ARCoreRecordingConfig hinzu, den Sie während der Sitzungskonfiguration erstellt haben.
// 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;

Alle neuen Tracks werden als separate Aufzeichnungen behandelt, wobei jeder aufgezeichnete Track eine eigene UUID belegt.

Track mit zusätzlichen Daten konfigurieren

Konfigurieren Sie den Track mit zusätzlichen Daten, die die Sitzungsaufzeichnung beschreiben. Sie können beispielsweise einen Track mit Tags versehen, indem Sie den Ort und die Uhrzeit der Aufzeichnung beschreiben: "Diese Sitzung wurde am Nachmittag im Einkaufszentrum aufgenommen."

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

Titel mit einem MIME-Typ konfigurieren

Konfigurieren Sie einen Track mit einem MIME-Typ, der den Typ der im Track aufgezeichneten Daten beschreibt, um die Kompatibilität mit externen Tools zu gewährleisten.

Wenn Sie keinen Typ angeben, werden die Daten als application/text kategorisiert. ARCore ignoriert den MIME-Typ beim Lesen von Daten.

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

Benutzerdefinierte Daten-Tracks aufzeichnen

Alle benutzerdefinierten Trackdaten werden in Frames aufgezeichnet. Die Zeit, zu der Sie Daten in einem Frame aufzeichnen, ist der Zeitpunkt, zu dem die Daten während der Wiedergabe zurückgegeben werden. Wenn du beispielsweise RecordTrackData() mit dem Wert „A“ bei 00:07:02 aufrufst, erhältst du an der 00:07:02-Markierung „A“, wenn der Titel abgespielt wird.

Rufen Sie RecordTrackData() auf, um einen benutzerdefinierten Datentrack aufzuzeichnen.

// 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);
}

Benutzerdefinierte Daten-Tracks wiedergeben

Sie können während der Wiedergabe benutzerdefinierte Daten aus einer Sitzungsaufzeichnung extrahieren.

Wiedergabe initialisieren

Das Initialisieren einer Wiedergabe mit benutzerdefinierten Daten ist identisch mit dem Initialisieren der Wiedergabe einer regulären Sitzungsaufzeichnung.

Benutzerdefinierte Daten zurückgeben

Rufen Sie GetUpdatedTrackData() auf, um die benutzerdefinierten Daten abzurufen, die in einem Frame aufgezeichnet wurden. Es ist möglich, aus einem Frame mehrere Trackdaten abzurufen. Wenn du beispielsweise während einer Aufnahme RecordTrackData() zweimal in demselben Frame aufgerufen hast, wird TrackData während der Wiedergabe zweimal zurückgegeben.

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

Sobald sich TrackData in einem Containerobjekt befindet, extrahieren Sie die Bytes der benutzerdefinierten Daten.

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

Nächste Schritte