E. 홈플로팅 설정하기
앱 홈 화면에 진행 중인 방송을 작은 창으로 띄웁니다. PIP 와 같은 API 를 부르는 시점만 다르게 사용합니다.
▲ 앱 홈 화면 위에 떠 있는 작은 플레이어
PIP API 와의 관계
홈플로팅은 앱 홈 화면에서 진행 중인 방송을 작은 창으로 보여 주는 것입니다.
전용 API 가 따로 있는 것이 아니라, PIP 와 같은 PIPKit 을 부르는 시점만 다르게 씁니다.
| PIP | 홈플로팅 | |
|---|---|---|
| 시작 지점 | 시청자가 방송을 보던 중 | 앱이 홈 화면에서 먼저 띄움 |
| 쓰는 API | PIPKit.show · startPIPMode() — 동일 | |
| 목적 | 시청 이어가기 | 진행 중인 방송으로 유입시키기 |
연동하기
홈 화면이 나타날 때 플레이어를 띄우고 바로 작은 창으로 전환합니다.
Swift
class HomeVC: UIViewController { private var player: SauceLivePlayerClient? private func showFloatingPlayer(broadcastID: String) { guard !PIPKit.isActive else { return } // 이미 떠 있으면 중복 실행 방지 let player = SauceLivePlayerClient.getInstance( broadcastID: broadcastID, token: userToken, viewController: self ) player.onClose = { PIPKit.dismiss(animated: true) } PIPKit.show(with: player) player.startPIPMode() // 곧바로 작은 창으로 self.player = player } }
⚠️ 전체화면으로 먼저 표시된 뒤 작은 창이 됩니다. 처음부터 작은 창으로 띄우는 옵션이 제공되지 않습니다. 전환이 눈에 보일 수 있으니 실제 기기에서 확인하세요.
💡 중복 실행을 반드시 막으세요 —
PIPKit.show 를 이미 떠 있는 상태에서 다시 부르면 기존 창을 닫고 새로 띄웁니다. 홈 화면은 여러 번 나타나므로 PIPKit.isActive 로 확인하는 코드가 필요합니다.
표시할 방송 선택
플레이어에 넘길 라이브 ID 는 앱이 정해야 합니다.
「진행 중인 방송을 자동으로 골라 주는」 기능은 제공되지 않습니다.
-
1편성이 정해져 있다면 — 라이브 ID 를 앱에 내려 주는 자사 API 를 만들어 홈 진입 시 조회합니다.
-
2방송이 없을 때 — 플로팅을 띄우지 않습니다. 진행 중이 아닌 라이브 ID 로 띄우면 빈 화면이 보입니다.
-
3방송 목록·편성 정보가 필요하면 담당자에게 문의해 주세요.
💡 웹 SDK 와 다릅니다 — 웹에는 진행 중인 방송을 자동으로 선택하는
setOnAirInit 이 있지만, 앱SDK 에는 대응 기능이 없습니다.
제약 사항
작은 창의 위치·크기는 SDK 고정값입니다. → D. PIP 설정하기
💡 Android 도 지원합니다. 다만 방식이 다릅니다. iOS 는
PIPKit 으로 PIP 를 켜고 끄는 반면, Android 는 showFloatingPlayer() 하나로 플레이어를 띄우면서 곧바로 PIP 모드로 들어갑니다. → Android 홈플로팅 설정하기
Updated about 1 hour ago
Did this page help you?