Wprowadzenie do nagrywania i odtwarzania

Przewodniki dotyczące poszczególnych platform

Zdecydowana większość funkcji rzeczywistości rozszerzonej odbywa się w czasie rzeczywistym. Wymagają one od użytkowników przebywania w określonym miejscu o określonej godzinie, gdy telefon ma włączony specjalny tryb AR i jest otwarty na aplikację AR. Na przykład użytkownik, który chce zobaczyć, jak wygląda kanapa AR w salonie, musi „umieścić” kanapę na ekranie, fizycznie przebywa w pomieszczeniu.

Interfejs API do nagrywania i odtwarzania eliminuje to wymaganie dotyczące „czasu rzeczywistego”, umożliwiając tworzenie treści AR, które można wyświetlać w dowolnym miejscu i w dowolnym czasie. Interfejs Record API przechowuje strumień wideo z kamery, dane IMU lub dowolne inne niestandardowe metadane, które zapiszesz, by zapisać je 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 z sesji na żywo. Nadal możesz używać sesji kamery na żywo, ale dzięki nowemu interfejsowi API aplikacje AR mogą zdecydować się na użycie nagranego wcześniej pliku MP4 zamiast tej sesji na żywo.

Z tej funkcji mogą też korzystać użytkownicy. Niezależnie od tego, gdzie akurat się znajdują, mogą pobrać dowolny film nagrany przy użyciu interfejsu API nagrania i odtwarzania z natywnej galerii, 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 do nagrywania i odtwarzania eliminuje ograniczenia czasowe i przestrzenne związane z tworzeniem aplikacji AR. Oto kilka sposobów wykorzystania tego narzędzia w Twoich projektach.

Nagraj raz, testuj wszędzie

Za każdym razem, gdy chcesz przetestować funkcję AR, zamiast fizycznie jechać do konkretnego miejsca, możesz nagrać film za pomocą interfejsu Notification API i odtworzyć go na dowolnym zgodnym urządzeniu. Planujesz zakupy 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 dla każdego obsługiwanego urządzenia z Androidem, w fazie iteracji możesz nagrać film raz i odtworzyć go na różnych urządzeniach w przypadku każdego scenariusza, który chcesz przetestować.

Zmniejszenie obciążenia względem testów ręcznych w zespołach programistycznych

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ń

Aplikacja ARCore będzie Ci potrzebna do rejestrowania danych przy użyciu interfejsu API do nagrywania i odtwarzania, ale nie będzie już potrzebny do odtwarzania treści. Pliki MP4 nagrane za pomocą tej funkcji to w zasadzie pliki wideo z dodatkowymi danymi, które można oglądać w dowolnym odtwarzaczu wideo. Możesz je sprawdzić za pomocą ExoPlayera na Androidzie lub dowolnego zgodnego odtwarzacza, który może demuxować pliki MP4 i zarządzać dodatkowymi danymi dodanymi przez ARCore.

Jak są rejestrowane filmy i dane 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 sesji możesz wskazać aplikacji, które mają używać tych danych zamiast sesji kamery na żywo.

Co zawiera nagranie?

ARCore przechwytuje poniższe dane w filmach w formacie H.264. Możesz go używać w 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. Według domyślnie ARCore rejestruje obraz procesora 640 x 480 (VGA) używany do śledzenie ruchu jako główny film .

ARCore nie przechwytuje tekstury GPU (o wysokiej rozdzielczości) renderowanej w 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 użyje obrazu procesora o wysokiej rozdzielczości, który przechwycony podczas nagrywania jako tekstura GPU podczas odtwarzania.
  • Obraz procesora w wysokiej rozdzielczości stanie się domyślnym strumieniem wideo w nagraniu MP4.

Wybrana konfiguracja kamery 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 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. Tego filmu należy używać tylko na potrzeby podglądu.

Zdarzenia wywołania interfejsu API

ARCore rejestruje pomiary z czujników żyroskopu i akcelerometru urządzenia. Rejestruje też inne dane, z których niektóre mogą być poufne:

  • 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
  • Jeśli używasz ARCore Geospatial API, szacowana lokalizacja urządzenia, odczyty magnetometru i odczyty kompasu.