Einführung in Aufzeichnung und Wiedergabe

Plattformspezifische Anleitungen

Die überwiegende Mehrheit der Augmented-Reality-Funktionen ist „Echtzeit“. Nutzer müssen sich zu einer bestimmten Zeit an einem bestimmten Ort befinden, ihr Smartphone muss in einem speziellen AR-Modus eingerichtet sein und eine AR-App geöffnet haben. Wenn ein Nutzer beispielsweise sehen möchte, wie eine AR-Couch in seinem Wohnzimmer aussieht, muss er die Couch in der Umgebung auf dem Bildschirm platzieren, während er sich physisch im Raum befindet.

Die Recording and Playback API macht diese Echtzeitanforderung überflüssig. So können Sie AR-Inhalte erstellen, die überall und jederzeit angesehen werden können. Die Recording API speichert den Videostream einer Kamera, IMU-Daten oder andere benutzerdefinierte Metadaten, die Sie in einer MP4-Datei speichern möchten. Sie können diese aufgezeichneten Videos dann über die Playback API an ARCore übergeben. Die MP4-Datei wird dann wie ein Live-Sitzungsfeed behandelt. Sie können weiterhin eine Live-Kamerasitzung verwenden. Mit dieser neuen API können Ihre AR-Anwendungen jedoch anstelle dieser Live-Sitzung eine vorab aufgezeichnete MP4-Datei verwenden.

Auch Endnutzer können diese Funktion nutzen. Unabhängig davon, wo sie sich gerade befinden, können sie jedes mit der Recording and Playback API aufgenommene Video aus ihrer nativen Galerie aufrufen und AR-Objekte, -Effekte und -Filter einfügen oder wiedergeben. Mit dieser Funktion können Nutzer in der Bahn auf dem Weg zur Arbeit oder im Bett AR-Shopping betreiben.

Anwendungsfälle für die Entwicklung mit der Recording and Playback API

Mit der Recording and Playback API entfallen die Zeit- und Speicherplatzbeschränkungen beim Erstellen von AR-Apps. Hier sind einige Möglichkeiten, wie Sie sie in Ihren eigenen Projekten verwenden können.

Einmal aufnehmen, überall testen

Anstatt jedes Mal an einen Ort zu gehen, an dem Sie eine AR-Funktion testen möchten, können Sie mit der Recording API ein Video aufnehmen und dann auf einem beliebigen kompatiblen Gerät wiedergeben. Sie möchten eine Umgebung in einem Einkaufszentrum erstellen? Sie müssen nicht jedes Mal dorthin gehen, wenn Sie eine Änderung testen möchten. Sie können Ihren Besuch einfach aufzeichnen und dann von Ihrem Schreibtisch aus iterieren und weiterentwickeln.

Iterationszeit verkürzen

Anstatt für jedes Android-Gerät, das Sie unterstützen möchten, und jedes Szenario, das Sie testen möchten, ein Video aufzunehmen, können Sie das Video einmal aufnehmen und während der Iterationsphase auf mehreren verschiedenen Geräten abspielen.

Manuellen Testaufwand für Entwicklungsteams reduzieren

Anstatt für jede neue Funktion benutzerdefinierte Datensätze zu erstellen, können Sie auf bereits aufgezeichnete Datensätze zurückgreifen, wenn Sie neue Funktionen einführen, die Tiefeninformationen oder die neuesten Tracking-Verbesserungen von ARCore nutzen.

Gerätekompatibilität

Sie benötigen ARCore, um Daten mit der Recording and Playback API aufzuzeichnen, aber nicht, um sie wiederzugeben. Mit dieser Funktion aufgenommene MP4-Dateien sind im Grunde Videodateien mit zusätzlichen Daten, die mit jedem Videoplayer angesehen werden können. Sie können sie mit dem ExoPlayer von Android oder einem anderen kompatiblen Player prüfen, der sowohl MP4s demuxen als auch die zusätzlichen Daten verwalten kann, die von ARCore hinzugefügt wurden.

So werden Video- und AR-Daten für die Wiedergabe aufgezeichnet

ARCore speichert aufgezeichnete Sitzungen als MP4-Dateien auf dem Zielgerät. Diese Dateien enthalten mehrere Videotracks und andere Daten. Sobald diese Sitzungen gespeichert sind, können Sie Ihre App anweisen, diese Daten anstelle einer Live-Kamerasitzung zu verwenden.

Was ist in einer Aufnahme enthalten?

ARCore erfasst die folgenden Daten in H.264-Videos. Du kannst sie mit jedem MP4-kompatiblen Videoplayer abspielen, der das Umschalten von Tracks unterstützt. Der Track mit der höchsten Auflösung steht an erster Stelle in der Liste, da einige MP4-kompatible Videoplayer den ersten Track in der Liste automatisch abspielen, ohne dass du auswählen kannst, welcher Videotrack wiedergegeben werden soll.

Primärer Videotrack (CPU-Image-Track)

Die primäre Videodatei zeichnet die Umgebung oder Szene für die spätere Wiedergabe auf. Standardmäßig zeichnet ARCore das CPU-Bild mit 640 × 480 Pixeln (VGA) auf, das für das Bewegungstracking verwendet wird, als primären Videostream auf.

ARCore erfasst nicht die (hochauflösende) GPU-Textur, die als Kamerabild für die Durchsicht auf dem Display gerendert wird.

Wenn während der Wiedergabe ein Bildstream mit hoher Auflösung verfügbar sein soll, müssen Sie eine Kamera konfigurieren, die ein CPU-Bild mit der gewünschten Auflösung liefert. In diesem Fall gilt:

  • ARCore fordert sowohl das CPU-Bild mit 640 × 480 Pixeln (VGA) an, das für das Bewegungstracking erforderlich ist, als auch das CPU-Bild mit hoher Auflösung, das in der konfigurierten Kamerakonfiguration angegeben ist.
  • Das Erfassen des zweiten CPU-Imagestreams kann sich auf die App-Leistung auswirken. Die Auswirkungen können je nach Gerät unterschiedlich sein.
  • Während der Wiedergabe verwendet ARCore das hochauflösende CPU-Bild, das während der Aufnahme erfasst wurde, als GPU-Textur.
  • Das hochauflösende CPU-Bild wird zum Standardvideostream in der MP4-Aufzeichnung.

Die während der Aufnahme ausgewählte Kamerakonfiguration bestimmt das CPU-Bild und den primären Videostream in der Aufnahme. Wenn Sie keine Kamerakonfiguration mit einem hochauflösenden CPU-Bild auswählen, ist dieses Video der erste Track in der Datei und wird unabhängig vom verwendeten Videoplayer standardmäßig wiedergegeben.

Visualisierung der Kameratiefe

Dies ist eine Videodatei, die die Tiefenkarte der Kamera darstellt. Sie wird vom Hardware-Tiefensensor des Geräts, z. B. einem Time-of-Flight-Sensor (ToF-Sensor), aufgenommen und in RGB-Kanalwerte umgewandelt. Dieses Video sollte nur zu Vorschauzwecken verwendet werden.

API-Aufruf-Ereignisse

ARCore erfasst Messungen vom Gyroskop und Beschleunigungsmesser des Geräts. Außerdem werden andere Daten erfasst, von denen einige möglicherweise sensibel sind:

  • Versionen des Dataset-Formats
  • ARCore SDK-Version
  • Version der Google Play-Dienste für AR
  • Fingerabdruck des Geräts (Ausgabe von adb shell getprop ro.build.fingerprint)
  • Weitere Informationen zu Sensoren, die für AR-Tracking verwendet werden
  • Bei Verwendung der ARCore Geospatial API werden der geschätzte Standort, die Magnetometer- und Kompasswerte des Geräts