składane urządzenia i aparaty;

Uwaga: ta strona dotyczy pakietu Camera2. Jeśli Twoja aplikacja nie wymaga konkretnych funkcji niskiego poziomu z Camera2, zalecamy użycie CameraX. Zarówno CameraX, jak i Camera2 obsługują Androida 5.0 (poziom interfejsu API 21) i nowsze.

Deweloperzy aplikacji do obsługi aparatu mogą napotkać na wyjątkowe problemy podczas tworzenia aplikacji do obsługi aparatu na urządzeniach składanych. W odróżnieniu od smartfonów, w przypadku których często można postawić kilka założeń dotyczących orientacji ekranu, orientacji kamery i kierunku, urządzenia składane mogą mieć różne formaty, układy ekranu i kombinacje kamer.

Smartfony często mają aparaty w orientacji pionowej, która pasuje do wyświetlacza. Nie zawsze jednak tak jest. Rozłożony ekran może mieć jeden czujnik w orientacji pionowej i inny w orientacji poziomej.

Jeśli aplikacja aparatu korzysta z SurfaceTexture lub niestandardowego potoku renderowania, pamiętaj o orientacji czujnika aparatu.

Dzięki temu renderowane treści są zawsze w poziomie, a piksele pozostają kwadratowe, co zapobiega rozciąganiu w kierunku poziomym lub pionowym.

W tym przewodniku znajdziesz informacje o tym, na co powinni zwracać uwagę deweloperzy aplikacji Camera2, oraz instrukcje dostosowywania renderowania podglądu aparatu w zależności od stanu składanego urządzenia.

Jak przełączniki stanu urządzenia wpływają na kamery

Składane urządzenia mogą obejmować:

  • co najmniej 2 wyświetlacze fizyczne;
  • kilka urządzeń z fizycznymi kamerami,

Te urządzenia mogą być aktywne w zależności od ich stanu. Aby uprościć obsługę stanu urządzenia, niektóre urządzenia implementują kamerę logiczną składającą się z co najmniej 2 czujników fizycznych.

Jeśli deweloperzy otworzą i włączą strumieniowe przesyłanie podglądu na takim urządzeniu z aparatem logicznym, kamera automatycznie przełączy się między fizycznymi urządzeniami w odpowiedzi na określone stany składania.

Rozważmy na przykład składane urządzenie z 2 ekranami:

  • Złożony ekran w orientacji pionowej z fizycznym „zewnętrznym” przednim aparatem w orientacji pionowej.
  • Składany ekran w rozłożonym stanie z „wewnętrznym” przednim aparatem w orientacji poziomej względem rozłożonego wyświetlacza.

Gdy użytkownik składa lub rozkłada urządzenie, a aplikacja przesyła strumieniowo dane z przedniej kamery logicznej, implementacja urządzenia może przełączać się między wewnętrznymi a zewnętrznymi czujnikami fizycznymi w odpowiedzi na każdą zmianę stanu urządzenia.

Przełączanie wyświetlacza może wymagać dostosowania interfejsu aplikacji.

Oprócz dostosowywania interfejsu deweloperzy mogą też rozważyć dostosowanie renderowania podglądu kamery w zależności od aktywnej kamery fizycznej.

Fizyczne przełączniki aparatu

Logiczny interfejs urządzenia do obsługi kamery udostępnia niezbędne interfejsy API do obsługi przełączników fizycznych kamer. Deweloperzy muszą sprawdzać wartość aktywnego identyfikatora fizycznego.

Na urządzeniach składanych wynik rejestrowania aktywnego identyfikatora fizycznego może się zmieniać w zależności od różnych stanów składania i rozkładania.

W takich przypadkach deweloperzy muszą użyć bieżącego aktywnego identyfikatora fizycznego i sprawdzić odpowiadające mu dane o kamerze.

Dwie najważniejsze cechy aparatu, które mogą się zmieniać i wpływać na renderowanie podglądu, to orientacja czujnikakierunek obiektywu.

Jeśli ścieżka renderowania podglądu aplikacji zależy od stałych parametrów kamery, aby obliczyć jej ostateczną macierz przekształcenia, upewnij się, że przekazujesz bieżące wartości i aktualizujesz przekształcenia graficzne.

Aby dowiedzieć się więcej o przetwarzaniu podglądu z kamery i sposobie obliczania przekształceń, zapoznaj się z przewodnikiem po podglądzie z kamery.

Dodatkowe nieprawidłowe założenia

Nie zalecamy buforowania wartości cech aparatu.

Nie można zakładać, że parametry kamery pozostaną niezmienne, ponieważ mogą się zmieniać, gdy urządzenie jest złożone lub rozłożone. Z tego powodu nie należy przechowywać i ponownego używać właściwości kamery. Zamiast tego za każdym razem sprawdzaj właściwości kamery.

Rozważmy przypadek, w którym aplikacja aparatu uruchamia się na zewnętrznym wyświetlaczu przednim i przechowuje w pamięci podręcznej bieżące właściwości przedniego i tylnego aparatu. Jeśli aplikacja zostanie ponownie uruchomiona na wewnętrznym ekranie, aktywny przedni czujnik fizyczny może mieć inną orientację, co może spowodować niepożądane efekty uboczne w procesie renderowania podglądu.