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