Przewodniki dotyczące poszczególnych platform
Android (Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
Unreal Engine
Większość funkcji rzeczywistości rozszerzonej działa „w czasie rzeczywistym”. Wymaga to, aby użytkownicy znajdowali się w określonym miejscu w określonym czasie, mieli telefon ustawiony w specjalnym trybie AR i otwartą aplikację AR. Jeśli na przykład użytkownik chce zobaczyć, jak sofa w realnej rzeczywistości wygląda w salonie, musi „umieścić” ją w otoczeniu na ekranie, gdy fizycznie znajduje się w pokoju.
Interfejs API do nagrywania i odtwarzania eliminuje to wymaganie dotyczące „czasu rzeczywistego”, umożliwiając tworzenie doświadczeń AR, które można wyświetlać w dowolnym miejscu i w dowolnym czasie. Interfejs Recording API przechowuje strumień wideo z kamery, dane IMU lub inne niestandardowe metadane, które zdecydujesz się zapisać w pliku MP4. Następnie możesz przesłać nagrane filmy do ARCore za pomocą interfejsu Playback API, który będzie traktować plik MP4 tak samo jak plik danych z sesji na żywo. Nadal możesz korzystać z sesji kamery na żywo, ale dzięki temu nowemu interfejsowi API aplikacje AR mogą zamiast sesji na żywo używać wstępnie nagranego pliku MP4.
Z tej funkcji mogą też korzystać użytkownicy. Niezależnie od tego, gdzie się znajdują, mogą pobrać dowolny film nagrany za pomocą interfejsu API do nagrywania i odtwarzania z galerii natywnej aplikacji, a następnie edytować lub odtwarzać obiekty, efekty i filtry AR. Dzięki tej funkcji użytkownicy mogą robić zakupy z rozszerzoną rzeczywistością w pociągu w drodze do pracy lub leżąc w łóżku.
Przypadki użycia interfejsu Recording and Playback API
Interfejs API nagrywania i odtwarzania eliminuje ograniczenia czasowe i przestrzenne związane z tworzeniem aplikacji AR. Oto kilka sposobów wykorzystania go w Twoich projektach.
Nagraj raz, testuj wszędzie
Zamiast fizycznie pojawiać się w konkretnym miejscu za każdym razem, gdy chcesz przetestować funkcję AR, możesz nagrać film za pomocą interfejsu Recording API, a potem odtworzyć go na dowolnym zgodnym urządzeniu. Tworzysz kampanię w centrum handlowym? Nie musisz otwierać tej strony za każdym razem, gdy chcesz 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żdym urządzeniu z Androidem, które chcesz obsługiwać, i w przypadku każdego scenariusza, który chcesz przetestować, możesz nagrać film raz i odtworzyć go na różnych urządzeniach podczas fazy iteracji.
Zmniejsz obciążenie zespołów programistów związane z testowaniem ręcznym
Zamiast tworzyć niestandardowe zbiory danych dla każdej nowej funkcji, możesz korzystać z zapisanego wcześniej zbioru danych podczas wdrażania nowych funkcji, które wykorzystują głębię lub najnowsze ulepszenia śledzenia z ARCore.
Zgodność urządzeń
Aby nagrywać dane za pomocą interfejsu Recording and Playback API, musisz użyć ARCore, ale nie jest ono potrzebne do odtwarzania. Pliki MP4 nagrane za pomocą tej funkcji to w podstawie pliki wideo z dodatkowymi danymi, które można wyświetlić za pomocą dowolnego odtwarzacza. Możesz je sprawdzić za pomocą ExoPlayer na Androidzie lub dowolnego zgodnego odtwarzacza, który może demuxować pliki MP4 i zarządzać dodatkowymi danymi dodanymi przez ARCore.
Jak dane wideo i AR są rejestrowane 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 wskazać aplikacji, aby używała tych danych zamiast bieżącej sesji kamery.
Co zawiera nagranie?
ARCore rejestruje te dane w formacie wideo H.264. Możesz go używać na dowolnym odtwarzaczu obsługującym format MP4 i umożliwiającym przełączanie ścieżek. Ścieżka o najwyższej rozdzielczości jest pierwsza na liście, ponieważ niektóre odtwarzacze zgodne z formatem MP4 automatycznie odtwarzają pierwszą ścieżkę na liście, nie pozwalając wybrać, która ścieżka ma być odtworzona.
Główna ścieżka wideo (ścieżka obrazu procesora)
Główny plik wideo rejestruje środowisko lub scenę do późniejszego odtworzenia. Domyślnie ARCore rejestruje obraz procesora o rozdzielczości 640 × 480 (VGA), który jest używany do śledzenia ruchu jako główny strumień wideo.
ARCore nie rejestruje tekstury GPU (w wysokiej rozdzielczości), która jest renderowana na ekranie jako obraz z kamery.
Jeśli chcesz, aby strumień obrazu o wysokiej rozdzielczości był dostępny podczas odtwarzania, musisz skonfigurować kamerę, która dostarcza obraz procesora o pożądanej rozdzielczości. W tym przypadku:
- ARCore będzie prosić o obraz z procesora o rozdzielczości 640 x 480 (VGA), którego wymaga do śledzenia ruchu, oraz obraz z procesora o wysokiej rozdzielczości określony w konfiguracji aparatu.
- Przechwytywanie drugiego strumienia obrazów procesora może wpływać na wydajność aplikacji, a na różne urządzenia może mieć różny wpływ.
- Podczas odtwarzania ARCore będzie używać obrazu w wysokiej rozdzielczości z procesora, 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 podczas nagrywania konfiguracja aparatu określa obraz procesora i główny strumień wideo w nagraniu. Jeśli nie wybierzesz konfiguracji kamery z obrazem procesora o wysokiej rozdzielczości, ten film będzie pierwszym utworem w pliku i będzie odtwarzany domyślnie, niezależnie od tego, którego odtwarzacza używasz.
Wizualizacja mapy głębi kamery
To plik wideo przedstawiający mapę głębi kamery, zarejestrowany za pomocą czujnika głębi sprzętowej urządzenia, takiego jak czujnik czasu przelotu (ToF), i przekształcony w wartości kanału RGB. Ten film powinien być używany tylko do celów podglądu.
Zdarzenia wywołania interfejsu API
ARCore rejestruje pomiary z czujników żyroskopu i akcelerometru urządzenia. Rejestruje on również inne dane, z których część może być poufna:
- Wersje formatu zbioru danych
- Wersja pakietu SDK ARCore
- Wersja Usług Google Play dla AR
- Odcisk cyfrowy urządzenia (wyjście funkcji
adb shell getprop ro.build.fingerprint
) - Dodatkowe informacje o czujnikach używanych do śledzenia AR
- Podczas korzystania z interfejsu ARCore Geospatial API: szacunkowa lokalizacja urządzenia, odczyty magnetometru i kompasu.