Wprowadzenie do nagrywania i odtwarzania

Przewodniki dotyczące poszczególnych platform

Zdecydowana większość treści w rzeczywistości rozszerzonej odbywa się w czasie rzeczywistym. Użytkownik musi być w określonym miejscu o określonej godzinie, a telefon musi być ustawiony w specjalnym trybie AR i otworzyć aplikację AR. Jeśli na przykład użytkownik chce zobaczyć, jak kanapa AR wygląda w swoim salonie, musi „ustawić” kanapę w miejscu widocznym na ekranie, gdy użytkownik fizycznie przebywa w pokoju.

Interfejs nagrywania i odtwarzania eliminuje to wymaganie dotyczące „czasu rzeczywistego”, dzięki czemu możesz tworzyć doświadczenia AR, które można oglądać w dowolnym miejscu i czasie. Logging API przechowuje strumień wideo z kamery, dane IMU i wszelkie inne niestandardowe metadane zapisane przez Ciebie w pliku MP4. Nagrane filmy możesz potem przesłać do ARCore za pomocą interfejsu Playback API, który będzie traktować te pliki MP4 tak samo jak sesje na żywo. Nadal możesz korzystać z sesji z kamerą na żywo, ale dzięki nowemu interfejsowi API aplikacje AR mogą zamiast sesji na żywo używać nagranego wcześniej formatu MP4.

Z tej funkcji mogą korzystać także użytkownicy. Niezależnie od tego, gdzie się znajdują, mogą znaleźć dowolny film nagrany przy użyciu interfejsu nagrywania i odtwarzania ze swojej galerii natywnej i edytować lub odtwarzać obiekty AR, efekty i filtry. Dzięki tej funkcji użytkownicy mogą robić zakupy w rzeczywistości rozszerzonej, gdy jadą pociągiem do biura albo wylegują się w łóżku.

Przypadki użycia programowania za pomocą interfejsu Logging and Playback API

Interfejs nagrywania i odtwarzania eliminuje ograniczenia czasowe i przestrzenne związane z tworzeniem aplikacji AR. Oto kilka sposobów wykorzystania jej we własnych projektach.

Nagraj raz, przetestuj ją w dowolnym miejscu

Zamiast za każdym razem, gdy chcesz przetestować funkcję AR, nie musisz odwiedzać jakiegoś miejsca. Możesz nagrać film za pomocą interfejsu Logging API, a potem odtworzyć go na dowolnym zgodnym urządzeniu. Chcesz robić zakupy w centrum handlowym? Nie musisz tam przechodzić za każdym razem, gdy chcesz przetestować zmianę. Wystarczy, że raz zarejestrujesz wizytę w aplikacji, a następnie powtórzysz je i zaczniesz tworzyć, nie wychodząc z własnego biurka.

Skróć czas iteracji

Zamiast nagrywać film dla każdego obsługiwanego urządzenia z Androidem, możesz nagrać film raz i odtworzyć go na kilku różnych urządzeniach na etapie iteracji.

Zmniejszenie obciążenia związanego z ręcznymi testami przez zespoły programistyczne

Zamiast tworzyć niestandardowe zbiory danych dla każdej nowej funkcji, wykorzystaj wcześniej nagrane zbiory danych, wdrażając nowe funkcje, które wykorzystują funkcje zaawansowane lub najnowsze ulepszenia śledzenia w ARCore.

Zgodność urządzeń

ARCore będzie Ci potrzebny do rejestrowania danych za pomocą interfejsu nagrywania i odtwarzania. Nie jest on jednak potrzebny do odtwarzania treści. Pliki MP4 nagrane przy użyciu tej funkcji to zasadniczo pliki wideo z dodatkowymi danymi, które można wyświetlić w dowolnym odtwarzaczu. Możesz je przejrzeć za pomocą ExoPlayer na Androida lub dowolnego zgodnego odtwarzacza, który może zarówno dekodować pliki MP4, jak i zarządzać dodatkowymi danymi dodanymi przez ARCore.

Jak filmy i dane 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 sesji możesz wskazać aplikację, by używała tych danych zamiast sesji kamery na żywo.

Co zawiera nagranie?

ARCore rejestruje poniższe dane w formacie H.264. Możesz uzyskać do niego dostęp w dowolnym odtwarzaczu zgodnym z MP4, który może przełączać ścieżki. Utwór o najwyższej rozdzielczości jest na pierwszym miejscu na liście, ponieważ niektóre odtwarzacze wideo zgodne z formatem MP4 automatycznie odtwarzają pierwszą ścieżkę bez możliwości wyboru ścieżki wideo do odtworzenia.

Główna ścieżka wideo (ścieżka obrazu procesora)

Główny plik wideo rejestruje środowisko lub scenę na potrzeby późniejszego odtworzenia. Domyślnie ARCore rejestruje jako główny strumień wideo obraz procesora w rozdzielczości 640 x 480 (VGA), który jest używany do śledzenia ruchu.

ARCore nie przechwytuje tekstury GPU (w wysokiej rozdzielczości) renderowanej na ekranie jako obrazu pośredniego aparatu.

Jeśli chcesz, aby podczas odtwarzania był dostępny strumień obrazów w wysokiej rozdzielczości, musisz skonfigurować aparat, który dostarcza obraz z procesora w żądanej rozdzielczości. W takim przypadku:

  • ARCore żąda zarówno obrazu z procesora 640 x 480 (VGA), który jest potrzebny do śledzenia ruchu, jak i obrazu procesora w wysokiej rozdzielczości określony w skonfigurowanej konfiguracji kamery.
  • Przechwytywanie drugiego strumienia obrazu z procesora może mieć wpływ na wydajność aplikacji, a w zależności od urządzenia może to wyglądać inaczej.
  • Podczas odtwarzania ARCore użyje obrazu procesora o wysokiej rozdzielczości, który został zarejestrowany podczas nagrywania, jako tekstury GPU podczas odtwarzania.
  • Obraz procesora w wysokiej rozdzielczości stanie się domyślnym strumieniem wideo w nagraniu w formacie MP4.

Konfiguracja kamery wybrana podczas nagrywania 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 pierwszą ścieżką w pliku i będzie domyślnie odtwarzany niezależnie od używanego odtwarzacza.

Wizualizacja mapy głębi z aparatu

Jest to plik wideo reprezentujący mapę głębi kamery, nagrany za pomocą sprzętowego czujnika głębokości urządzenia, takiego jak czujnik czasu lotu (lub czujnika ToF), i przekonwertowany na wartości kanałów RGB. Tego filmu należy użyć tylko do podglądu.

Zdarzenia wywołania interfejsu API

ARCore rejestruje pomiary z czujników żyroskopu i akcelerometru w urządzeniu. Rejestruje też inne dane, z których część może być wrażliwa:

  • Wersje formatu zbioru danych
  • Wersja pakietu SDK ARCore
  • Usługi Google Play dla wersji AR
  • Odcisk cyfrowy urządzenia (dane wyjściowe funkcji adb shell getprop ro.build.fingerprint)
  • Dodatkowe informacje o czujnikach używanych do śledzenia AR
  • Gdy korzystasz z interfejsu ARCore Geospatial API, orientacyjna lokalizacja urządzenia oraz odczyty magnetometru i kompasu