화면 속 화면·백그라운드 재생
앱 밖에서도
재생을 이어 가는 두 가지 방식
화면 속 화면(PiP)은 작은 창에 영상을 띄운 채 다른 앱을 쓰게 하고, 백그라운드 재생은 학습자가 다른 앱으로 넘어간 뒤에도 재생을 계속합니다. 둘 다 Android SDK와 iOS SDK의 플레이어 설정으로 정하며, 기본값은 화면 속 화면 허용, 백그라운드 재생 꺼짐입니다.
최종 수정
학습자가 앱을 벗어날 때 일어나는 일
홈 화면으로 나가거나 다른 앱을 열 때의 동작은 플랫폼마다 다릅니다. 운영 정책을 정하기 전에 네 가지를 먼저 알아 두세요.
-
Picture in Picture
화면 속 화면
상단 버튼, 메뉴, 화면 두 번 탭으로 들어갑니다. 작은 창을 한 번 누르면 창 안에 제어 버튼이 나타납니다. 허용 여부는
allowsPictureInPicturePlayback(기본 true)으로 정합니다. -
Background
백그라운드 재생
allowsBackgroundPlayback을 true로 둔 플레이어만 앱을 떠난 뒤에도 재생이 계속됩니다. 기본값은 false이고, Android 문서의 미디어 아이템 구성 예제가 이 값을 켜는 코드로 되어 있습니다. -
iOS
나갈 때 화면 속 화면 자동 시작
canStartPictureInPictureAutomatically가 켜져 있으면 앱이 백그라운드로 갈 때 화면 속 화면이 자동으로 시작될 수 있습니다. 기본값은 true입니다. -
Android
홈 버튼은 백그라운드 재생으로
2024년 8월 20일 버전부터 홈 버튼을 누르면 화면 속 화면 대신 백그라운드 재생으로 바뀝니다. 백그라운드 재생 중에는 상단 메뉴바를 내려 재생 중인 플레이어 표시를 누르면 플레이어 화면으로 돌아옵니다.
플랫폼별 동작과 개발 준비
두 SDK 문서에 모두 나오는 항목만 나란히 놓았습니다. 한쪽 문서에만 있는 내용은 위 카드와 아래 이벤트 단락에 따로 적었습니다.
| 항목 | Android SDK | iOS SDK |
|---|---|---|
| 사용 조건 | 화면 속 화면은 Android 8.0(API 26)부터 사용 가능 | Xcode Background Modes에서 Audio, AirPlay, and Picture in Picture 활성화 |
| 프로젝트 설정 | 플레이어 액티비티에 supportsPictureInPicture="true". 백그라운드 재생용 FOREGROUND_SERVICE_MEDIA_PLAYBACK 권한(타깃 API 34 이상) | Signing & Capabilities 탭에서 Background Modes를 추가하고 위 항목을 켬 |
| 앱 시작 시 준비 | startMediaPlayerService()가 플레이어와 미디어 세션을 만들고 DRM 기본 설정을 합니다 | MediaPlaybackService.initialize(appId:)가 오디오 세션을 구성하고 DRM 기본 설정을 합니다 |
| 앱 코드로 전환 | enterPictureInPicture()에 액티비티와 sourceRectHint 또는 sourceView 전달 | startPictureInPicture(), stopPictureInPicture() |
| 작은 창 버튼 | 설정, 닫기(X), 화면 속 화면 종료, 이전, 재생·일시 정지, 다음. 2024년 9월 24일부터 진행바와 10초 이동 버튼 추가 | 닫기(X)와 화면 속 화면 종료, 재생·일시 정지 |
| 설정 위치 | MediaPlayerActivityConfiguration, 앱 화면 안 재생은 MediaPlayerBaseFragment.Parameters | MediaPlayerViewController.Configuration, 재생 중에는 MediaPlayer 속성 |
| 최근 수정 | 2026년 10월 16일 PiP 동작 시 비정상 종료 수정 | 2026년 2월 25일 PiP 배속 재생 수정, 7월 23일 백그라운드 재생 설정 동작 오류 수정 |
Android SDK는 7.1(API 25)부터 동작하지만 화면 속 화면은 8.0부터 쓸 수 있습니다. 7.1 기기를 쓰는 학습자가 있다면 수강 안내에 이 차이를 적어 두세요. 플랫폼 전체 준비 단계는 Android, iOS 페이지에 있습니다.
과정 성격에 맞춘 설정 예시
두 값은 플레이어를 열 때 넘기는 설정 묶음에 들어 있습니다. 과정마다 다르게 하려면 과정별 설정을 만들어 넘깁니다. 아래 조합은 권장 예시입니다.
| 과정 유형 | 화면 속 화면 | 백그라운드 재생 | 이유 |
|---|---|---|---|
| 법정·의무 교육 | 끄기 검토 | 끔(기본) | 화면을 보며 이수하는 과정이라면 다른 앱과 겹쳐 보는 시청을 줄입니다 |
| 어학 듣기·오디오 강의 | 허용 | 켬 | 다른 앱을 쓰거나 화면을 보지 않는 동안에도 듣게 합니다 |
| 실습 따라 하기 | 허용(기본) | 끔 | 작은 창으로 보면서 다른 앱에서 바로 따라 합니다 |
| 유료 VOD·사내 기밀 영상 | 보안 시험 뒤 결정 | 끔 | 작은 창 재생 중 녹화 차단 동작을 기기별로 확인한 뒤 엽니다 |
iOS에는 작은 창에 자막을 띄우는 allowsSubtitlesInPictureInPicture가 실험적 기능으로 있습니다. PiP 자막 출력은 2026년 5월 29일에 들어갔고, 7월 20일 구형 기기의 자막 생성 지연이 고쳐졌으며, 7월 29일 이 옵션이 기본값 false로 추가됐습니다. 문서는 켜면 미디어 열기가 늦어지고 재생 성능·품질이 떨어질 수 있다고 경고합니다. 자막이 꼭 필요한 과정은 자막 기능을 함께 보세요.
iOS 앱이 화면 속 화면 상태를 아는 방법
iOS SDK는 작은 창으로 들어가고 나오는 순간을 이벤트로 알려 줍니다. 버튼 상태를 바꾸거나 시청 기록에 표시를 남길 때 씁니다.
| 이벤트·속성 | 시점 | 활용 예 |
|---|---|---|
pictureInPictureWillStart → pictureInPictureActiveChange(true) → pictureInPictureDidStart | 작은 창으로 들어갈 때 이 순서로 호출 | 진입 시각 기록 |
pictureInPictureWillStop → pictureInPictureActiveChange(false) → pictureInPictureDidStop | 작은 창이 끝날 때 이 순서로 호출 | 앱 화면 복귀 처리 |
pictureInPicturePossibleChange | 전환 가능 여부가 바뀔 때 | 화면 속 화면 버튼 켜기·끄기 |
isPictureInPictureActive, isPictureInPicturePossible | 현재 상태를 읽는 속성 | 화면 표시 분기 |
작은 창으로 본 시간을 학습 시간으로 인정할지는 고객사가 정할 정책입니다. 진도 계산의 기본 데이터는 진도 데이터 설계에서 다룹니다.
녹화 차단과 함께 점검할 것
작은 창이 다른 앱 위에 떠 있는 동안에도 보안 동작이 유지되는지는 출시 전에 확인할 항목입니다.
-
iOS History
iOS 변경 이력
2025년 7월 18일 녹화 차단 개선에 이어 2026년 7월 13일 PiP 재생 중 녹화 차단 처리가 개선됐습니다. 화면 속 화면을 허용하는 iOS 앱은 이 날짜 이후 SDK로 빌드했는지 확인합니다.
-
Android History
Android 변경 이력
Android SDK에 녹화·캡처 차단이 들어간 것은 2024년 4월 8일 버전이고, 2026년 10월 16일 버전은 PiP 동작 중 비정상 종료를 고쳤습니다. 화면 속 화면을 열어 두는 앱이라면 최신 SDK 적용을 권합니다.
-
Test
출시 전 시험 순서
기기별로 화면 속 화면 진입, 다른 앱 실행, 화면 녹화 시작, 홈 버튼과 통화 수신을 차례로 해 봅니다. 결과는 보안 검토 문서에 남겨 두기를 권합니다.
보안 검토 가이드
녹화 차단의 플랫폼별 범위는 녹화·캡처 차단에서 확인하세요.
학습자의 하루로 본 설정
같은 기능도 쓰이는 장면에 따라 맞는 설정이 달라집니다. 안내문을 쓸 때 참고할 장면 세 가지입니다.
-
Commute
출퇴근길 듣기
어학 강의를 다른 앱으로 넘어간 뒤에도 이어 듣습니다. 백그라운드 재생을 켠 과정이어야 하고, 모바일 데이터로 들을 수 있게 할지는
allowsCellularAccess로 따로 정합니다. -
Messenger
메신저 답장 중
iOS는 앱을 나가면 작은 창으로 이어질 수 있습니다. Android는 홈 버튼이 백그라운드 재생으로 이어지므로, 영상을 계속 보게 하려면 화면 속 화면 버튼이나 두 번 탭을 안내합니다.
-
Phone Call
시청 중 걸려 온 전화
Android는 2024년 8월 30일 버전부터 통화 중 영상을 멈추고 통화가 끝나면 다시 재생합니다. iOS는 2024년 5월 9일 버전에서 백그라운드 재생 중 통화 뒤 자동 재생 문제를 고쳤습니다.
화면 속 화면·백그라운드 재생 FAQ
-
기본값 그대로 출시하면 어떻게 동작하나요?
화면 속 화면은 허용, 백그라운드 재생은 꺼진 상태입니다. iOS는 앱이 백그라운드로 갈 때 화면 속 화면 자동 시작도 기본으로 켜져 있습니다. 이 조합이 과정 정책과 맞는지 출시 전에 확인하세요.
-
iOS에서 화면 속 화면으로 바뀌지 않습니다.
먼저 Background Modes의 Audio, AirPlay, and Picture in Picture가 켜져 있는지 봅니다. 앱은
isPictureInPicturePossible값이나pictureInPicturePossibleChange이벤트로 지금 전환할 수 있는 상태인지 확인할 수 있습니다. -
재생 중에 화면 속 화면 허용 여부를 바꿀 수 있나요?
두 SDK 모두
MediaPlayer의allowsPictureInPicturePlayback이 값을 바꿀 수 있는 속성으로 선언돼 있습니다. 과정 단위 정책이라면 플레이어를 열 때 넘기는 설정 묶음으로 관리하는 편이 단순합니다. -
Android에서 백그라운드 재생을 어떻게 멈추나요?
상단 메뉴바를 내려 재생 중인 플레이어 표시를 누르면 플레이어 화면으로 돌아와 멈출 수 있습니다. 알림창에서 재생을 끝내는 처리는 2026년 5월 13일 버전에서 개선됐으니, 백그라운드 재생을 켜는 앱은 이 날짜 이후 SDK인지 확인하세요. 학습자 안내문에는 끄는 방법을 그림과 함께 넣어 두기를 권합니다.
-
백그라운드 다운로드와는 다른 기능인가요?
다른 기능입니다. iOS 다운로드 매니저는 앱이 화면 뒤로 물러난 상태에서도 다운로드가 진행되도록 AppDelegate에 별도 처리를 넣습니다. 재생 설정과는 따로 준비하며, 자세한 내용은 다운로드·오프라인에 있습니다.
PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.
제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.
-
제품 및 도입 문의
도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.
-
Trial 신청
PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.
-
PlaynPlay 기술 문의
SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.
기능
플랫폼
기능