Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine

Większość projektów rzeczywistości rozszerzonej działa w „czasie rzeczywistym”. Wymagają one, aby użytkownicy znajdowali się w określonym miejscu i czasie, a ich telefon był ustawiony w specjalnym trybie AR i otwarty w aplikacji AR. Jeśli na przykład użytkownik chce zobaczyć, jak kanapa AR wygląda w jego salonie, musi „umieścić” ją w środowisku wyświetlanym na ekranie, będąc fizycznie w tym pomieszczeniu.
Interfejs Recording and Playback API eliminuje to wymaganie „w czasie rzeczywistym”, umożliwiając tworzenie interfejsów AR, które można wyświetlać w dowolnym miejscu i czasie. Interfejs Recording API zapisuje strumień wideo z kamery, dane IMU lub inne niestandardowe metadane, które chcesz zapisać w pliku MP4. Nagrane filmy możesz następnie przekazać do ARCore za pomocą interfejsu Playback API, który będzie traktować plik MP4 tak samo jak strumień sesji na żywo. Nadal możesz korzystać z sesji kamery na żywo, ale dzięki temu nowemu interfejsowi API aplikacje AR mogą używać nagranego wcześniej pliku MP4 zamiast sesji na żywo.

Użytkownicy mogą również korzystać z tej funkcji. Niezależnie od tego, gdzie się znajdują, mogą otworzyć dowolny film nagrany za pomocą interfejsu Recording and Playback API w galerii na swoim urządzeniu i edytować lub odtwarzać obiekty, efekty i filtry AR. Dzięki tej funkcji użytkownicy mogą robić zakupy w AR w pociągu w drodze do biura lub w łóżku.
Przypadki użycia podczas tworzenia aplikacji z interfejsem Recording and Playback API
Interfejs Recording and Playback API usuwa ograniczenia czasowe i przestrzenne związane z tworzeniem aplikacji AR. Oto kilka sposobów, w jakie możesz wykorzystać tę funkcję w swoich projektach.
Nagrywaj raz, testuj wszędzie
Zamiast za każdym razem udawać się w określone miejsce, aby przetestować funkcję AR, możesz nagrać film za pomocą interfejsu Recording API, a potem odtworzyć go na dowolnym kompatybilnym urządzeniu. Tworzysz atrakcję w centrum handlowym? Nie musisz za każdym razem tam wchodzić, aby przetestować zmianę. Wystarczy, że raz nagrasz wizytę, a potem będziesz ją ulepszać i rozwijać, siedząc wygodnie przy biurku.
Skrócenie czasu iteracji
Zamiast nagrywać film na każde urządzenie z Androidem, które chcesz obsługiwać, i w każdym scenariuszu, który chcesz przetestować, możesz nagrać film raz i odtwarzać go na różnych urządzeniach w fazie iteracji.
Zmniejszenie obciążenia testami ręcznymi w zespołach deweloperskich
Zamiast tworzyć niestandardowe zbiory danych dla każdej nowej funkcji, wykorzystuj wstępnie zarejestrowane zbiory danych podczas wprowadzania nowych funkcji, które wykorzystują głębię lub najnowsze ulepszenia śledzenia z ARCore.
Zgodność urządzeń
Do nagrywania danych za pomocą interfejsu Recording and Playback API potrzebujesz ARCore, ale do odtwarzania nie. Pliki MP4 nagrane za pomocą tej funkcji to w zasadzie pliki wideo z dodatkowymi danymi, które można odtworzyć w dowolnym odtwarzaczu. Możesz je sprawdzić za pomocą ExoPlayer na Androidzie lub dowolnego zgodnego odtwarzacza, który potrafi demuksować pliki MP4 i zarządzać dodatkowymi danymi dodanymi przez ARCore.
Sposób rejestrowania danych wideo i danych AR na potrzeby odtwarzania
ARCore zapisuje nagrane sesje w plikach MP4 na urządzeniu docelowym. Te pliki zawierają wiele ścieżek wideo i inne dane. Po zapisaniu tych sesji możesz skonfigurować aplikację tak, aby używała tych danych zamiast sesji na żywo z kamery.
Co znajduje się w nagraniu?
ARCore rejestruje te dane w formacie wideo H.264. Możesz uzyskać do niego dostęp w dowolnym odtwarzaczu wideo obsługującym format MP4, który umożliwia przełączanie ścieżek. Ścieżka o najwyższej rozdzielczości jest pierwsza na liście, ponieważ niektóre odtwarzacze wideo zgodne z MP4 automatycznie odtwarzają pierwszą ścieżkę na liście, nie pozwalając na wybór ścieżki wideo do odtworzenia.
Główna ścieżka wideo (ścieżka obrazu procesora)
Główny plik wideo rejestruje otoczenie lub scenę do późniejszego odtworzenia. Domyślnie ARCore rejestruje obraz z procesora o rozdzielczości 640x480 (VGA), który jest używany do śledzenia ruchu, jako główny strumień wideo.
ARCore nie rejestruje (w wysokiej rozdzielczości) tekstury GPU, która jest renderowana na ekranie jako obraz z kamery z przezroczystością.
Jeśli chcesz, aby podczas odtwarzania dostępny był strumień obrazu w wysokiej rozdzielczości, musisz skonfigurować kamerę, która zapewnia obraz CPU o odpowiedniej rozdzielczości. W tym przypadku:
- ARCore zażąda obrazu z procesora o rozdzielczości 640 x 480 (VGA), który jest potrzebny do śledzenia ruchu, oraz obrazu z procesora o wysokiej rozdzielczości określonego przez skonfigurowaną konfigurację aparatu.
- Przechwytywanie drugiego strumienia obrazu z procesora może mieć wpływ na wydajność aplikacji, a różne urządzenia mogą być dotknięte w różnym stopniu.
- Podczas odtwarzania ARCore będzie używać obrazu z procesora w wysokiej rozdzielczości, który został zarejestrowany podczas nagrywania, jako tekstury GPU.
- Obraz procesora w wysokiej rozdzielczości stanie się domyślnym strumieniem wideo w nagraniu MP4.
Wybrana konfiguracja kamery podczas nagrywania określa obraz z procesora i główny strumień wideo w nagraniu. Jeśli nie wybierzesz konfiguracji kamery z obrazem o wysokiej rozdzielczości, ten film będzie pierwszym ścieżką w pliku i będzie odtwarzany domyślnie niezależnie od używanego odtwarzacza wideo.
Wizualizacja mapy głębi kamery
Jest to plik wideo przedstawiający mapę głębi kamery, nagrany za pomocą sprzętowego czujnika głębi urządzenia, takiego jak czujnik czasu przelotu (ToF), i przekonwertowany na wartości kanału RGB. Ten film powinien być używany tylko w celach podglądowych.
Zdarzenia wywołań interfejsu API
ARCore rejestruje pomiary z żyroskopu i akcelerometru urządzenia. Rejestruje też inne dane, z których część może być poufna:
- Wersje formatu zbioru danych
- Wersja pakietu ARCore SDK
- Wersja Usług Google Play dla AR
- Odcisk cyfrowy urządzenia (wynik działania funkcji
adb shell getprop ro.build.fingerprint) - Dodatkowe informacje o czujnikach używanych do śledzenia AR
- Podczas korzystania z ARCore Geospatial API: szacunkowa lokalizacja urządzenia, odczyty magnetometru i odczyty kompasu.