PIP 모드

PIP는 전체 화면 동영상을 재생하는 활동을 위한 멀티 윈도우 모드의 한 유형입니다. 사용자가 기본 화면에서 앱 간에 이동하거나 콘텐츠를 탐색할 때 화면 모서리에 고정된 작은 창에서 동영상을 볼 수 있습니다.

그림 1: 사용자가 앱을 사용하지 않을 때도 동영상 환경을 계속 이용할 수 있음

테이크어웨이

  • 활동이 PIP 모드일 때 UI 요소가 숨겨지고 동영상 재생이 계속되는지 확인합니다.
  • 동영상이 아닌 콘텐츠의 원활한 크기 조절을 사용 중지합니다.
  • 최소한의 UI가 포함된 동영상 재생 활동에서 최상의 사용자 환경을 제공합니다.
  • 동영상 콘텐츠 이외의 콘텐츠는 표시하지 않습니다.

앱에 PIP 모드 지원 추가

기본적으로 시스템은 앱의 PIP를 자동으로 지원하지 않으므로 이 기능을 지원하도록 선언해야 합니다.

PIP 창은 화면 최상단 레이어의 시스템에서 선택한 모서리에 표시됩니다.

제어

기본적으로 Android는 창을 닫고 전체 화면, 설정, 미디어 재생으로 다시 확장하는 PIP 컨트롤을 제공합니다. 앱에서는 사용자가 PIP 콘텐츠와 상호작용할 수 있도록 맞춤 작업과 적절한 아이콘 애셋을 추가할 수 있습니다.

사용자는 휴대기기의 창을 탭하거나 TV 리모컨에서 메뉴를 선택하여 PIP 창 메뉴에서 이러한 컨트롤을 표시할 수 있습니다. 앱에 활성 미디어 세션이 있으면 재생, 일시중지, 다음, 이전도 표시하게 됩니다. 이러한 컨트롤을 추가하는 방법을 알아보세요.

PIP 모드에서는 활동이 작은 창에 표시됩니다. 이 모드에서는 사용자가 앱의 다른 UI 요소와 상호작용할 수 없으며 PIP 창에 있는 작은 UI 요소의 세부정보는 잘 보이지 않을 수 있습니다.

그림 2: 기본 PIP 제어


그림 3: 맞춤 PIP 컨트롤의 예

화면전환

부드러운 PIP 모드로 들어가기 애니메이션

사용자가 PIP 모드를 트리거하면 현재 활동이 전체 화면에서 작은 창으로 축소되어 UI를 오버레이하지 않고 콘텐츠를 계속 표시합니다.

Android 12에서는 전체 화면과 PIP 창 간의 애니메이션 전환에 상당한 외형적 개선사항을 추가했습니다. 적용 가능한 모든 변경사항을 구현하는 것이 좋습니다. 그러면 이러한 변경사항이 추가 작업 없이 폴더블 및 태블릿과 같은 큰 화면으로 자동 확장됩니다.

앱에 이러한 관련 업데이트가 포함되어 있지 않으면 PIP 전환은 계속 작동하지만 애니메이션이 덜 세련되게 됩니다. 예를 들어 전체 화면에서 PIP 모드로 전환하면 전환 완료 시 PIP 창이 다시 나타나기 전에 전환 중에 사라질 수 있습니다.

Android 12부터 PictureInPictureParams.Builder.setAutoEnterEnabled(true) 플래그는 동작 탐색을 사용하여 PIP 모드에서 동영상 콘텐츠로 전환할 때(예: 전체 화면에서 홈으로 위로 스와이프할 때) 훨씬 더 매끄러운 애니메이션을 제공합니다. 앱이 ENTERTAINMENT, COMMUNICATION 또는 VIDEO_PLAYER 앱 카테고리에 속한다면 이 방법을 사용하는 것이 좋습니다.

앱에 이 변경사항이 포함되지 않은 경우 동작 탐색을 사용한 PIP 전환은 계속 작동하지만 애니메이션이 덜 세련되게 됩니다. 동영상 1은 이에 대한 예를 보여줍니다. 창이 앱 아이콘으로 축소되었다가 사라진 후 전환이 완료되면 다시 나타납니다.

동영상 1: PIP에 setAutoEnterEnabled가 제대로 구현되지 않은 경우의 매끄럽지 않은 전환 환경

동영상 2에서는 동일한 전환의 예를 보여주지만 setAutoEnterEnabled가 앱에 추가되어 있습니다.

동영상 2: 세련된 전환 환경

부드러운 동영상 영상

Android 8.0에 PIP를 도입했을 때 sourceRectHint은 PIP로 전환된 후에 표시되는 활동 영역을 지정했습니다(예: 동영상 플레이어의 동영상 뷰 경계). Android 12부터 OS는 sourceRectHint를 사용하여 PIP 모드로 전환하고 종료할 때 훨씬 더 매끄러운 애니메이션을 구현합니다.

앱에서 적절한 sourceRectHint를 제공하지 않는 경우에도 PIP 전환은 계속 작동하지만 애니메이션이 덜 세련됩니다. 예를 들어 동영상 3은 전체 화면에서 PIP 모드로 전환하는 덜 정돈된 예를 보여줍니다. 전체 화면 창이 PIP 창으로 축소되면 동영상을 다시 표시하기 전에 검은색 오버레이로 덮습니다.

동영상 3: PIP에 sourceRectHint가 제대로 구현되지 않은 경우의 덜 매끄러운 전환 환경

sourceRectHint가 올바르게 구현되었을 때 PIP 애니메이션이 어떻게 표시되는지 확인하려면 이전 섹션의 동영상 2를 참고하세요.

세련된 전환 환경을 사용 설정하려면 Android Kotlin PictureInPicture 샘플을 참고하세요.

사용

사용자가 앱 내에서뿐 아니라 모든 기기에서 동영상을 계속 시청할 수 있도록 허용합니다. 앱은 현재 활동이 PIP 모드로 전환되는 시점을 제어합니다. 이는 현재 뷰에서 나가거나 위로 스와이프하여 홈으로 이동하는 등의 상호작용일 수 있습니다.

다음은 가능한 작업의 몇 가지 예입니다.

  • 사용자가 홈 버튼을 탭하거나 위로 스와이프하여 홈으로 이동하면 활동이 PIP 모드로 전환될 수 있습니다. 이는 사용자가 다른 활동을 동시에 실행하는 동안 Google 지도에서 계속 경로를 표시하는 방법입니다.

    그림 4: 길찾기 경험을 지속하는 데 사용되는 PIP
  • 사용자가 동영상을 보다가 다른 콘텐츠를 탐색할 때 앱에서 동영상을 PIP 모드로 전환할 수 있습니다.

  • 사용자가 콘텐츠 에피소드의 끝을 시청하는 동안 앱에서 동영상을 PIP 모드로 전환할 수 있습니다. 기본 화면에는 시리즈의 다음 에피소드에 관한 홍보 또는 요약 정보가 표시됩니다.

  • 사용자가 동영상을 보는 동안 앱이 추가 콘텐츠를 대기열에 올리는 방법을 제공할 수 있습니다. 동영상이 PIP 모드로 계속 재생되는 동안 기본 화면에 콘텐츠 선택 활동이 표시됩니다.

방해가 되지 않으면서 시청 환경을 보완하는 상호작용 패턴을 활용합니다. 예를 들어 동영상이 콘텐츠 에피소드의 끝부분에 있는 경우 홈 화면을 닫을 때 PIP 모드를 사용하려면 돌아와서 재생을 중지하거나 작은 컨트롤을 탐색하려면 추가 사용자 작업이 필요합니다.

앱에서 동영상 재생 활동이 PIP 모드에 있는 동안 사용자는 기본 화면에서 콘텐츠를 탐색할 때 새 동영상을 선택할 수 있습니다. 사용자를 혼란스럽게 할 수 있는 새 활동을 실행하는 대신 기존 재생 활동의 새 동영상을 전체 화면 모드로 재생합니다.

사용자는 PIP 창을 다른 위치로 드래그할 수 있습니다.

  • 창을 한 번 탭하여 전체 화면 전환, 닫기 버튼, 설정 버튼 및 앱에서 제공하는 맞춤 작업(예: 재생 컨트롤 기능)을 표시합니다.

    그림 5: 기본 PIP 제어
  • 창을 두 번 탭하여 현재 PIP 크기와 최대 또는 최소 PIP 크기 간에 전환합니다. 예를 들어 최대화된 창을 두 번 탭하면 최소화되며 반대의 경우도 마찬가지입니다.

    그림 6: 두 번 탭하여 최소 및 최대 크기 PIP 간 전환
  • 창을 왼쪽이나 오른쪽 가장자리로 드래그하여 고정합니다. 창을 숨김 해제하려면 숨긴 창에서 보이는 부분을 탭하거나 드래그합니다.

    그림 7: PIP 저장됨
  • 손가락으로 모으거나 펼쳐 확대/축소하여 PIP 창 크기를 조절합니다.

  • PIP를 아래로 스와이프하여 창을 제거합니다.

    그림 8: 아래로 스와이프

PIP 구현에 관한 자세한 내용은 PIP 모드 개발자 문서를 참고하세요.