PIP 모드

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

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

요약

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

앱에 PIP 모드 지원 추가

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

PIP 창이 화면 맨 윗부분에서 시스템이 선택한 모서리에 나타납니다.

관리

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

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

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

기본 PiP 컨트롤
맞춤 PiP 컨트롤의 예

사용

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

다음은 취할 수 있는 조치의 예입니다.

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

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

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

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

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

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

상호작용 패턴

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

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

그림 5: 기본 PiP 컨트롤

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

그림 6: 더블탭으로 최소 크기와 최대 크기 PiP 간에 전환

창을 왼쪽 또는 오른쪽 가장자리로 드래그하여 숨깁니다. 창을 다시 꺼내려면 숨겨진 창에서 보이는 부분을 탭하거나 드래그하면 됩니다.

그림 7: PiP 숨김

손가락을 모으거나 펼쳐 확대/축소하여 PIP 창 크기를 조절합니다.

PiP를 아래로 스와이프하여 창을 닫습니다.

그림 8: 아래로 스와이프

화면전환

PIP 애니메이션으로 원활하게 전환

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

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

앱에 이러한 관련 업데이트가 포함되지 않은 경우 PiP 전환은 계속 작동하지만 애니메이션이 다듬어지지 않습니다. 예를 들어 전체 화면 모드에서 PIP 모드로 전환하면 전환 중에 PIP 창이 사라졌다가 전환이 완료될 때 다시 표시될 수 있습니다.

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

앱에 이 변경사항이 포함되지 않은 경우 동작 탐색을 사용한 PIP 전환은 계속 작동하지만 애니메이션이 다듬어지지 않습니다. 동영상 1은 이의 예를 보여줍니다. 창이 앱 아이콘으로 축소되어 사라졌다가 전환이 완료되면 다시 표시됩니다.

PiP에 setAutoEnterEnabled가 제대로 구현되지 않은 경우 전환 환경이 다듬어지지 않음
앱에 setAutoEnterEnabled가 추가되어 전환 환경이 개선되었습니다.

부드러운 동영상 화질

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

앱에서 적절한 sourceRectHint를 제공하지 않으면 PiP 전환은 계속 작동하지만 애니메이션이 다듬어지지 않습니다. 예를 들어 동영상 3은 전체 화면에서 PIP 모드로 전환되는 다소 미흡한 예시를 보여줍니다. 전체 화면 창이 PIP 창으로 축소된 후 검은색 오버레이로 가려졌다가 동영상이 다시 표시됩니다.

동영상 3: PIP에 sourceRectHint가 제대로 구현되지 않은 경우 다듬어지지 않은 전환 환경

sourceRectHint가 올바르게 구현된 경우 PIP 애니메이션이 표시되는 방식의 예는 이전 섹션의 동영상 2를 참고하세요.

세련된 전환 환경을 사용 설정하는 방법은 Android Kotlin PIP 모드 샘플을 참고하세요.

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