Einführung in Aufzeichnung und Wiedergabe

Plattformspezifische Leitfäden

Die meisten Augmented Reality-Erlebnisse finden in Echtzeit statt. Nutzer müssen sich zu einer bestimmten Zeit an einem bestimmten Ort befinden, ihr Smartphone muss in einem speziellen AR-Modus eingestellt und eine AR-App geöffnet sein. Wenn ein Nutzer beispielsweise sehen möchte, wie ein AR-Sofa in seinem Wohnzimmer aussieht, muss er das Sofa in der Umgebung auf dem Bildschirm platzieren, während er sich physisch im Raum befindet.

Mit der Recording and Playback API entfällt diese Anforderung, da Sie AR-Erlebnisse erstellen können, 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 senden. Die MP4-Datei wird dabei wie ein Live-Sitzungsfeed behandelt. Sie können weiterhin eine Live-Kamerasitzung verwenden. Mit dieser neuen API können Ihre AR-Anwendungen jedoch eine vorab aufgezeichnete MP4-Datei anstelle der Live-Sitzung verwenden.

Auch Endnutzer können diese Funktion nutzen. Unabhängig davon, wo sie sich gerade befinden, können sie jedes Video, das mit der Recording and Playback API aufgezeichnet wurde, in ihrer nativen Galerie aufrufen und AR-Objekte, ‑Effekte und ‑Filter bearbeiten oder wiedergeben. Mit dieser Funktion können Nutzer AR-Shopping betreiben, während sie im Zug zur Arbeit fahren oder im Bett liegen.

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

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

Einmal aufzeichnen, überall testen

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

Iterationszeit reduzieren

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

Manuelle Testlast für Entwicklungsteams reduzieren

Anstatt für jede neue Funktion benutzerdefinierte Datensätze zu erstellen, können Sie vorab aufgezeichnete Datensätze verwenden, wenn Sie neue Funktionen einführen, die Tiefenerkennung oder die neuesten Verbesserungen beim Tracking von ARCore nutzen.

Gerätekompatibilität

Sie benötigen ARCore, um Daten mit der Recording and Playback API aufzuzeichnen, aber nicht, um sie wiederzugeben. MP4-Dateien, die mit dieser Funktion aufgezeichnet wurden, sind im Wesentlichen Videodateien mit zusätzlichen Daten, die mit jedem Videoplayer angesehen werden können. Sie können sie mit dem ExoPlayer von Android oder einem beliebigen kompatiblen Player untersuchen, der MP4-Dateien demuxen und die von ARCore hinzugefügten zusätzlichen Daten verwalten kann.

Video- und AR-Daten für die Wiedergabe aufzeichnen

ARCore speichert aufgezeichnete Sitzungen in MP4-Dateien auf dem Zielgerät. Diese Dateien enthalten mehrere Videospuren und andere verschiedene Daten. Sobald diese Sitzungen gespeichert sind, können Sie Ihre App so konfigurieren, dass diese Daten anstelle einer Live-Kamerasitzung verwendet werden.

Was ist in einer Aufzeichnung enthalten?

ARCore erfasst die folgenden Daten in H.264-Videos. Sie können auf jedem MP4-kompatiblen Videoplayer darauf zugreifen, der Spuren wechseln kann. Die Spur mit der höchsten Auflösung ist die erste in der Liste, da einige MP4-kompatible Videoplayer automatisch die erste Spur in der Liste wiedergeben, ohne dass Sie auswählen können, welche Videospur wiedergegeben werden soll.

Primäre Videospur (CPU-Bildspur)

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

ARCore erfasst nicht die GPU-Textur (mit hoher Auflösung), die als Passthrough-Kamerabild auf dem Bildschirm 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 640 × 480 (VGA) CPU-Bild an, das für die Bewegungserkennung erforderlich ist, als auch das CPU-Bild mit hoher Auflösung, das in der konfigurierten Kamerakonfiguration angegeben ist.
  • Die Erfassung des zweiten CPU-Bildstreams kann sich auf die App-Leistung auswirken. Die Auswirkungen können je nach Gerät unterschiedlich sein.
  • Während der Wiedergabe verwendet ARCore das CPU-Bild mit hoher Auflösung, das während der Aufzeichnung erfasst wurde, als GPU -Textur.
  • Das CPU-Bild mit hoher Auflösung wird zum Standard-Videostream in der MP4-Aufzeichnung.

Die während der Aufzeichnung ausgewählte Kamerakonfiguration bestimmt das CPU-Bild und den primären Videostream in der Aufzeichnung. Wenn Sie keine Kamerakonfiguration mit einem CPU-Bild mit hoher Auflösung auswählen, ist dieses Video die erste Spur in der Datei und wird standardmäßig wiedergegeben, unabhängig davon, welchen Videoplayer Sie verwenden.

Visualisierung der Kameratiefenkarte

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), aufgezeichnet und in RGB-Kanalwerte umgewandelt. Dieses Video sollte nur für Vorschauzwecke verwendet werden.

API-Aufrufereignisse

ARCore zeichnet Messungen von den Gyrometer- und Beschleunigungsmessersensoren des Geräts auf. Außerdem werden andere Daten aufgezeichnet, von denen einige vertraulich sein können:

  • Versionen des Datensatzformats
  • ARCore SDK-Version
  • Version der Google Play-Dienste für AR
  • Fingerabdruck des Geräts (Ausgabe von adb shell getprop ro.build.fingerprint)
  • Zusätzliche Informationen zu Sensoren, die für das AR-Tracking verwendet werden
  • Bei Verwendung der ARCore Geospatial API: geschätzter Standort des Geräts, Magnetometermessungen und Kompassmessungen