Библиотека Jetpack для режима «картинка в картинке» (PiP) предлагает оптимизированное и надежное решение для разработчиков Android-приложений, позволяющее реализовать функциональность PiP, особенно для воспроизведения мультимедиа, видеосвязи и навигации. Предоставляя единый API, библиотека помогает устранить шаблонный код, распространенные ошибки в приложениях и улучшить общее качество пользовательского опыта в режиме PiP.
Библиотека PiP Jetpack упрощает работу с существующими API PiP, устраняя ряд ключевых проблем и несоответствий в экосистеме Android:
- Фрагментация ОС : Библиотека автоматически обрабатывает различия в вызовах API PiP в разных версиях Android, например, использует
enterPictureInPictureModeдо Android 12 иisAutoEnterEnabledпосле, поэтому разработчикам не нужно управлять различиями в версиях. - Неправильные параметры PiP : Предоставляется унифицированное решение для правильной настройки параметров PiP, например,
setSourceRectHint, для создания плавной и высококачественной анимации во время воспроизведения мультимедиа. - Единый интерфейс обратного вызова для управления состоянием PiP : он объединяет события
onPictureInPictureModeChangedиonPictureInPictureUiStateChangedв единый интерфейс обратного вызова (PictureInPictureDelegate.OnPictureInPictureEventListener) для упрощения управления состоянием и пользовательским интерфейсом. - Сокращение количества повторяющегося шаблонного кода : библиотека уменьшает объем повторяющегося шаблонного кода, предлагая предопределенные наборы
RemoteActionsдля распространенных сценариев использования, таких как управление воспроизведением и действия при видеозвонках. - Перспективная реализация : Дополнительные функции PiP (картинка в картинке) предоставляются через библиотеку Jetpack, что позволяет пользователям получать доступ к дополнительной функциональности с минимальными усилиями или без них.
Примите реактивный ранец
Для внедрения библиотеки Jetpack замените существующую пользовательскую реализацию режима «картинка в картинке» на API библиотеки Jetpack. Сложность и стоимость внедрения будут варьироваться в зависимости от текущей реализации приложения.
В следующих разделах описаны некоторые типичные сценарии использования PiP и необходимые этапы реализации:
Навигация
Приложение сообщает библиотеке об активном или неактивном состоянии навигации и устанавливает соотношение сторон. Библиотека Jetpack обрабатывает остальное.
Ключевые отличия:
- Нет необходимости различать автоматический ввод и ввод с помощью устаревших функций на стороне приложения.
- Объединенные интерфейсы обратного вызова.
- Новый конструктор
PictureInPictureParamsдля обеспечения обратной совместимости.
Видеозвонок
Приложение сообщает библиотеке об активном или неактивном состоянии вызова и устанавливает соотношение сторон.
Ключевые отличия:
- Нет необходимости различать автоматический ввод и ввод с помощью устаревших функций на стороне приложения.
- Объединенные интерфейсы обратного вызова.
- Новый конструктор
PictureInPictureParamsдля обеспечения обратной совместимости. - Стандартизированные значки действий для видеозвонка.
Воспроизведение видео
Библиотека Jetpack предлагает делегаты плеера, которые можно интегрировать для управления включением или отключением режима «картинка в картинке» и точной установки подсказки для исходного прямоугольника. Вы также можете выбрать предопределенный набор объектов RemoteAction , аналогичных тем, которые используются в сценариях видеозвонков.
Основные характеристики:
- Обеспечивает обратную совместимость, проверка версии ОС не требуется.
- Синхронизация состояния воспроизведения и управление автоматическим вводом.
- Непрерывное отслеживание геометрии с использованием
SourceRectHint.