Einführung in Aufzeichnung und Wiedergabe

Plattformspezifische Leitfäden

Bei den meisten Augmented Reality-Funktionen handelt es sich um „Echtzeit“. Nutzer müssen sich zu einer bestimmten Zeit an einem bestimmten Ort befinden und ihr Smartphone in einem speziellen AR-Modus öffnen und eine AR-App öffnen. Wenn ein Nutzer beispielsweise sehen möchte, wie ein AR-Sofa in seinem Wohnzimmer aussieht, muss er das Sofa auf dem Bildschirm „platzieren“, während er sich physisch im Raum befindet.

Die Recording and Playback API macht diese Anforderung in Echtzeit überflüssig. Du kannst also AR-Erlebnisse schaffen, die jederzeit und überall 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. Diese aufgenommenen Videos kannst du dann über die Playback API an ARCore übertragen, die die MP4-Datei wie einen Livesitzungsfeed verarbeitet. Sie können weiterhin eine Live-Kamerasitzung verwenden, aber mit dieser neuen API können Ihre AR-Anwendungen statt dieser Livesitzung eine vorab aufgezeichnete MP4-Datei verwenden.

Auch Endnutzer können diese Funktion nutzen. Ganz gleich, wo sie sich gerade im echten Leben befinden, können sie alle Videos, die sie mit der Recording and Playback API aufgenommen haben, aus ihrer nativen Galerie abrufen und AR-Objekte, -Effekte und -Filter ein- oder abspielen. Mit dieser Funktion können Nutzer ihre AR-Einkäufe auch im Zug erledigen, der ins Büro pendelt, oder im Bett.

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

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

Einmal aufzeichnen und überall testen

Anstatt jedes Mal, wenn Sie eine AR-Funktion testen möchten, an einen bestimmten Ort zu gehen, können Sie ein Video mit der Recording API aufnehmen und dann auf einem kompatiblen Gerät abspielen. Sie möchten sich in einem Einkaufszentrum weiterbilden? Sie müssen diese Seite nicht jedes Mal aufrufen, wenn Sie eine Änderung testen möchten. Zeichnen Sie Ihren Besuch einfach einmal auf und arbeiten Sie dann bequem von Ihrem eigenen Schreibtisch aus weiter.

Iterationen reduzieren

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

Manuelle Tests in den Entwicklungsteams reduzieren

Anstatt für jede neue Funktion benutzerdefinierte Datasets zu erstellen, kannst du vorab aufgezeichnete Datasets nutzen, während du neue Funktionen einführst, die Tiefe oder die neuesten Tracking-Verbesserungen von ARCore beinhalten.

Eingeschränkte Gerätekompatibilität

Zum Aufzeichnen von Daten mit der Recording and Playback API benötigst du ARCore, für die Wiedergabe von Inhalten jedoch nicht. MP4-Dateien, die mit dieser Funktion aufgenommen wurden, sind im Wesentlichen Videodateien mit zusätzlichen Daten, die mit jedem Videoplayer wiedergegeben werden können. Sie können sie mit dem ExoPlayer von Android oder einem anderen kompatiblen Player prüfen, der MP4-Dateien abbilden und die von ARCore hinzugefügten zusätzlichen Daten verwalten kann.

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

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

Was ist in einer Aufzeichnung?

ARCore erfasst die folgenden Daten in H.264-Videos. Du kannst mit jedem MP4-kompatiblen Videoplayer, der den Titel wechseln kann, darauf zugreifen. Der Titel mit der höchsten Auflösung steht an erster Stelle in der Liste, da einige MP4-kompatible Videoplayer automatisch den ersten Track in der Liste abspielen, ohne dass Sie den gewünschten Videotrack auswählen können.

Primärer Videotrack (CPU-Image-Track)

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

ARCore erfasst nicht die (hochauflösende) GPU-Textur, die auf dem Bildschirm als Passthrough-Kamerabild gerendert wird.

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

  • ARCore fordert sowohl das 640 × 480 (VGA) CPU-Bild, das für die Bewegungserkennung erforderlich ist, als auch das hochauflösende CPU-Bild an, das in der konfigurierten Kamerakonfiguration angegeben ist.
  • Die Aufnahme des zweiten CPU-Bildstreams kann sich auf die App-Leistung auswirken und verschiedene Geräte können unterschiedlich beeinflusst werden.
  • Während der Wiedergabe verwendet ARCore das hochauflösende CPU-Bild, das während der Aufnahme aufgenommen wurde, als GPU-Textur.
  • Das hochauflösende CPU-Bild wird als Standardvideostream in der MP4-Aufzeichnung verwendet.

Die bei der Aufnahme ausgewählte Kamerakonfiguration bestimmt das CPU-Bild und den primären Videostream in der Aufzeichnung. Wenn Sie keine Kamerakonfiguration mit einem hochauflösenden CPU-Bild auswählen, wird dieses Video als erster Track in der Datei verwendet und standardmäßig unabhängig davon abgespielt, welchen Videoplayer Sie verwenden.

Visualisierung der Tiefenkarte der Kamera

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

API-Aufrufereignisse

ARCore zeichnet Messwerte über den Gyrometer und den Beschleunigungsmesser des Geräts auf. Außerdem werden weitere Daten aufgezeichnet, von denen einige möglicherweise vertraulich sind:

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