PIP 모드 (PIP) Jetpack 라이브러리는 Android 앱 개발자가 특히 미디어 재생, 영상 통화, 탐색 앱을 위해 PIP 기능을 구현할 수 있는 간소화되고 강력한 솔루션을 제공합니다. 라이브러리는 통합 API를 제공하여 상용구 코드, 일반적인 인앱 버그를 없애고 전반적인 PIP 사용자 환경의 품질을 개선하는 데 도움이 됩니다.
PIP Jetpack 라이브러리는 Android 생태계 전반에서 몇 가지 주요 문제와 비일관성을 해결하여 기존 PIP API를 용이하게 합니다.
- OS 단편화: 라이브러리는 Android 12 이전에는
enterPictureInPictureMode를 사용하고 이후에는isAutoEnterEnabled를 사용하는 등 다양한 Android 버전에서 PIP API 호출의 차이를 자동으로 처리하므로 개발자가 버전 차이를 관리할 필요가 없습니다. - 잘못된 PIP 매개변수: PIP 매개변수(예:
setSourceRectHint)를 올바르게 설정하여 미디어 재생 중에 부드럽고 고품질 애니메이션을 만드는 통합 솔루션을 제공합니다. - 통합 PIP 상태 콜백: 상태 및 UI 관리를 간소화하기 위해
onPictureInPictureModeChanged및onPictureInPictureUiStateChanged를 단일 통합 콜백 인터페이스 (PictureInPictureDelegate.OnPictureInPictureEventListener)로 통합합니다. - 상용구 코드 감소: 라이브러리는 재생 컨트롤 및 영상 통화 작업과 같은 일반적인 사용 사례를 위해 미리 정의된
RemoteActions세트를 제공하여 반복적인 상용구 코드의 양을 줄입니다. - 미래 보장: 추가 PIP 기능은 Jetpack 라이브러리를 통해 제공되므로 채택자는 최소한의 노력으로 추가 기능에 액세스할 수 있습니다.
Jetpack 채택
Jetpack 라이브러리를 채택하려면 기존 맞춤 PIP 구현을 Jetpack 라이브러리 API로 바꾸세요. 채택의 복잡성과 비용은 앱의 현재 구현에 따라 다릅니다.
다음 섹션에서는 PIP의 일반적인 사용 사례와 필요한 구현 단계를 설명합니다.
탐색
앱은 라이브러리에 탐색의 활성 또는 비활성 상태를 알리고 가로세로 비율을 설정합니다. Jetpack 라이브러리가 나머지를 처리합니다.
주요 차이점:
- 앱 측에서 자동 입력과 기존 입력을 구분할 필요가 없습니다.
- 통합 콜백 인터페이스.
- 이전 버전과의 호환성을 위한 새
PictureInPictureParams빌더.
영상 통화
앱은 라이브러리에 통화의 활성 또는 비활성 상태를 알리고 가로세로 비율을 설정합니다.
주요 차이점:
- 앱 측에서 자동 입력과 기존 입력을 구분할 필요가 없습니다.
- 통합 콜백 인터페이스.
- 이전 버전과의 호환성을 위한 새
PictureInPictureParams빌더. - 영상 통화의 표준화된 작업 아이콘.
동영상 재생
Jetpack 라이브러리는 PIP 사용 설정 또는 사용 중지를 관리하고 소스 직사각형 힌트를 정확하게 설정하기 위해 통합할 수 있는 플레이어 대리자를 제공합니다.
영상 통화 시나리오에서 사용되는 것과 유사한 미리 정의된 RemoteAction 객체 세트를 선택할 수도 있습니다.
주요 특징:
- 이전 버전과의 호환성을 처리하며 OS 버전 확인이 필요하지 않습니다.
- 재생 상태 동기화 및 자동 입력 제어.
SourceRectHint를 사용한 연속 지오메트리 추적.