Korzystanie z biblioteki Jetpack Picture-in-Picture

Biblioteka Jetpack Picture-in-Picture (PiP) to uproszczone i niezawodne rozwiązanie, które umożliwia deweloperom aplikacji na Androida implementowanie 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ść korzystania z PiP.

Biblioteka Jetpack PiP ułatwia korzystanie z dotychczasowych interfejsów API PiP, rozwiązując kilka kluczowych problemów i niespójnoś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, dzięki czemu deweloperzy nie muszą zarządzać różnicami w wersjach .
  • Nieprawidłowe parametry PiP: biblioteka 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: biblioteka łączy onPictureInPictureModeChanged i onPictureInPictureUiStateChanged w jeden ujednolicony interfejs wywołania zwrotnego (PictureInPictureDelegate.OnPictureInPictureEventListener), co upraszcza zarządzanie stanem i interfejsem.
  • Ograniczenie kodu standardowego: biblioteka zmniejsza ilość powtarzalnego kodu standardowego, oferując predefiniowane zestawy RemoteActions do typowych przypadków użycia, takich jak sterowanie odtwarzaniem i działania związane z rozmowami wideo.
  • Przyszłościowe rozwiązania: kolejne funkcje PiP są dostarczane za pomocą biblioteki Jetpack, co pozwala użytkownikom uzyskiwać dostęp do dodatkowych funkcji przy minimalnym wysiłku.

Rozpoczęcie korzystania z Jetpack

Aby zacząć korzystać z biblioteki Jetpack, zastąp dotychczasową niestandardową implementację PiP interfejsami API biblioteki Jetpack. Złożoność i koszt wdrożenia będą się różnić w zależności od bieżącej implementacji aplikacji.

W sekcjach poniżej opisujemy niektóre typowe przypadki użycia PiP oraz niezbędne kroki implementacji:

Aplikacja informuje bibliotekę o aktywnym lub nieaktywnym stanie nawigacji i ustawia proporcje obrazu. Resztą zajmuje się biblioteka Jetpack.

Najważniejsze różnice:

  1. Nie trzeba rozróżniać automatycznego i starszego trybu wchodzenia w tryb PiP po stronie aplikacji.
  2. Ujednolicone interfejsy wywołań zwrotnych.
  3. Nowy konstruktor PictureInPictureParams na potrzeby zgodności wstecznej.

Rozmowa wideo

Aplikacja informuje bibliotekę o aktywnym lub nieaktywnym stanie połączenia i ustawia proporcje obrazu.

Najważniejsze różnice:

  1. Nie trzeba rozróżniać automatycznego i starszego trybu wchodzenia w tryb PiP po stronie aplikacji.
  2. Ujednolicone interfejsy wywołań zwrotnych.
  3. Nowy konstruktor PictureInPictureParams na potrzeby zgodności wstecznej.
  4. Ustandaryzowane ikony działań w przypadku rozmów wideo.

Odtwarzanie filmu

Biblioteka Jetpack oferuje delegaty odtwarzacza, które możesz zintegrować, aby zarządzać włączaniem i wyłączaniem PiP oraz dokładnie ustawiać wskazówkę dotyczącą prostokąta źródłowego. Możesz też wybrać predefiniowany zestaw obiektów RemoteAction, podobnych do tych używanych w scenariuszach rozmów wideo.

Najważniejsze funkcje:

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