Korzystanie z biblioteki Jetpack Picture-in-Picture

Biblioteka Jetpack Picture-in-Picture (PiP) to uproszczone i solidne rozwiązanie, które umożliwia deweloperom aplikacji na Androida wdrażanie funkcji PiP, zwłaszcza w przypadku aplikacji do odtwarzania multimediów, komunikacji wideo i nawigacji. Dzięki ujednoliconemu interfejsowi API biblioteka pomaga wyeliminować powtarzalny kod, typowe błędy w aplikacji i poprawić ogólną jakość interfejsu użytkownika w trybie obrazu w obrazie.

Biblioteka PiP Jetpack ułatwia korzystanie z dotychczasowych interfejsów API PiP, rozwiązując kilka kluczowych problemów i niezgodności w ekosystemie Androida:

  • Fragmentacja systemu operacyjnego: biblioteka automatycznie obsługuje różnice w wywołaniach interfejsu API PiP w różnych wersjach Androida, np. używa enterPictureInPictureMode przed Androidem 12 i isAutoEnterEnabled po nim, więc programiści nie muszą zarządzać różnicami między wersjami.
  • Nieprawidłowe parametry PiP: zapewnia ujednolicone rozwiązanie do prawidłowego ustawiania parametrów PiP, np. setSourceRectHint, aby tworzyć płynne i wysokiej jakości animacje podczas odtwarzania multimediów.
  • Ujednolicone wywołania zwrotne stanu PiP: łączy onPictureInPictureModeChangedonPictureInPictureUiStateChanged w jeden ujednolicony interfejs wywołania zwrotnego (PictureInPictureDelegate.OnPictureInPictureEventListener), co upraszcza zarządzanie stanem i interfejsem.
  • Ograniczenie ilości kodu standardowego: biblioteka zmniejsza ilość powtarzalnego kodu standardowego, oferując predefiniowane zestawy RemoteActions do typowych zastosowań, takich jak elementy sterujące odtwarzaniem i działania związane z połączeniami wideo.
  • Przyszłościowe rozwiązanie: kolejne funkcje PiP są dostarczane za pomocą biblioteki Jetpack, co umożliwia użytkownikom dostęp do dodatkowych funkcji przy minimalnym wysiłku lub bez niego.

Wdrażanie Jetpacka

Aby zastosować bibliotekę Jetpack, zastąp dotychczasową niestandardową implementację PiP interfejsami API biblioteki Jetpack. Złożoność i koszt wdrożenia zależą od obecnej implementacji aplikacji.

W sekcjach poniżej opisujemy typowe przypadki użycia trybu obrazu w obrazie i niezbędne kroki wdrożenia:

Aplikacja informuje bibliotekę o stanie aktywności lub nieaktywności nawigacji i ustawia współczynnik proporcji. Resztą zajmie się biblioteka Jetpack.

Najważniejsze różnice:

  1. Nie musisz rozróżniać automatycznego i starszego sposobu wprowadzania danych po stronie aplikacji.
  2. Skonsolidowane interfejsy wywołań zwrotnych.
  3. Nowy konstruktor PictureInPictureParams zapewniający zgodność wsteczną.

Rozmowa wideo

Aplikacja informuje bibliotekę o stanie połączenia (aktywne lub nieaktywne) i ustawia współczynnik proporcji.

Najważniejsze różnice:

  1. Nie musisz rozróżniać automatycznego i starszego sposobu wprowadzania danych po stronie aplikacji.
  2. Skonsolidowane interfejsy wywołań zwrotnych.
  3. Nowy konstruktor PictureInPictureParams zapewniający zgodność wsteczną.
  4. Standardowe ikony działań podczas rozmowy wideo.

Odtwarzanie filmu

Biblioteka Jetpack udostępnia delegaty odtwarzacza, które możesz zintegrować, aby zarządzać włączaniem i wyłączaniem trybu obrazu w obrazie oraz dokładnie ustawiać wskazówkę dotyczącą prostokąta źródłowego. Możesz też wybrać wstępnie zdefiniowany zestaw RemoteAction obiektów, podobny do tych, które są używane w scenariuszach połączeń wideo.

Najważniejsze funkcje:

  1. Obsługuje zgodność wsteczną, nie wymaga sprawdzania wersji systemu operacyjnego.
  2. Synchronizacja stanu odtwarzania i automatyczne sterowanie wprowadzaniem.
  3. Ciągłe śledzenie geometrii za pomocą SourceRectHint.