GuidesAPI GuideChangelog
Log In
Guides

API

앱에서 호출하는 메서드입니다. 대부분의 연동은 초기화·플레이어 실행·콜백 등록 세 개로 끝납니다.

API — 소스라이브 플레이어 Android SDK
📘 레퍼런스
📋 연동 방법은 Quickstart 참고

앱에서 호출하는 메서드입니다.
대부분의 연동은 아래 세 개로 끝납니다 — 초기화, 플레이어 실행, 콜백 등록.

❗ 화면 구성과 기능 노출은 앱 코드로 설정하지 않습니다. 색상·로고·기능 노출과 편성표·방송 예고 화면이 방송 설정으로 제어되며, 플레이어가 실행될 때 서버에서 받아 적용합니다. 변경이 필요하면 고급 설정을 참고해 담당자에게 요청하세요.
PLAY — 초기화와 실행
메서드파라미터설명
init context 필수
appKey 필수
environment 선택
SDK 를 초기화합니다. Application 의 onCreate() 에서 한 번만 호출하세요.
environment 는 "stage" 또는 "prod", 생략하면 운영입니다.
→ 1. SDK 설치하기
startLivePlayer context 필수
broadcastId 필수
token 선택
플레이어를 실행합니다. token 이 null 이면 게스트로 시청합니다.
VOD 를 재생할 때도 broadcastId 자리에 VOD ID 를 전달합니다.
→ 2. 플레이어 실행하기
updateAccessToken token 필수 로그인 후 발급받은 사용자 토큰을 실행 중인 플레이어에 반영합니다.
플레이어가 없으면 다음 실행에 사용됩니다.
→ 3. 사용자 인증하기
setLivePlayerCallbackListener callback 필수 플레이어에서 발생하는 이벤트를 받을 리스너를 등록합니다.
플레이어를 실행하기 전에 등록하세요.
→ Event handler
ONAIR — 진행 중인 방송 띄우기

SauceLivePlayerClient.setOnAirInit — 파트너의 LIVE 방송 중 가장 최근에 시작한 방송 하나를 골라 작은 창으로 띄웁니다.
이 그룹의 메서드는 모두 SauceLivePlayerClient 에 있습니다(import com.mobidoo.saucelive.player.SauceLivePlayerClient). Sauce 의존성에 함께 들어 있어 따로 설치하지 않습니다. → E. PIP로 바로 시작하기

파라미터타입설명
context 필수Context가능하면 현재 화면 Activity. 해당 화면에 작은 창을 바로 붙입니다
partnerId 필수String비어 있으면 호출이 무시됩니다
env 선택String"production"(기본) 또는 "stage".
LIVE 방송 목록의 조회 환경만 정합니다. 초기화의 environment 와 별개이며, 생략하면 항상 운영입니다
options 선택OnAirFloatingOptions작은 창 옵션 (아래 표)
token 선택String?사용자 토큰. 전체 플레이어로 전환할 때 전달합니다
onResult 선택((OnAirResult) -> Unit)?방송 선택 결과 (아래 표)

OnAirFloatingOptions

속성타입기본값설명
widthDpInt150창 너비(dp). 높이는 9:16 으로 정해집니다
positionOnAirFloatingPositionBOTTOM_RIGHT처음 뜨는 모서리.
TOP_LEFT · TOP_RIGHT · BOTTOM_LEFT · BOTTOM_RIGHT
offsetXDpInt0기본 여백 20dp 에 더하는 가로 여백
offsetYDpInt0기본 여백 20dp 에 더하는 세로 여백
badgeImageUrlString?null뱃지 이미지(PNG·SVG). 없으면 기본 LIVE 뱃지
activityFilter((Activity) -> Boolean)?nullfalse 를 반환한 화면에는 작은 창을 붙이지 않습니다

OnAirResult

값설명
Selected(broadcastId, broadcastStateCode)방송을 골라 띄웠습니다
NoneLIVE 방송이 없거나 조회에 실패해 아무것도 띄우지 않았습니다

제어·조회

메서드설명
setOnAirFloatingListener(listener: OnAirFloatingListener?)상태·닫힘 통지와 닫기·전체화면 가로채기를 등록합니다. null 이면 해제합니다 → Event handler
getOnAirFloatingState(): OnAirFloatingState현재 플로팅 상태
startPIPMode()전체 플레이어 → 작은 창.
Android 13 미만이거나 작은 창으로 옮길 수 없으면 OS PIP 로 전환합니다
stopPIPMode()작은 창·OS PIP → 전체 플레이어.
백그라운드의 OS PIP 는 앱이 전면일 때만 확대됩니다
closeOnAirFloating()setOnAirInit 으로 띄운 창(작은 창·전체 플레이어·OS PIP)만 완전히 닫습니다. 떠 있지 않으면 아무 동작도 하지 않습니다.
닫힘 원인은 HOST. 전체 플레이어로 되돌리는 stopPIPMode() 와 다릅니다
ETC — 조회
메서드반환설명
getBroadcastIdString?현재 재생 중인 라이브 ID
getPartnerIdString?초기화에 사용한 파트너 식별자
getMemberMember?현재 시청자 정보(닉네임·회원 식별자 등). 게스트일 때도 자동 발급된 정보가 들어 있습니다 → 게스트도 계정이 발급됩니다
getSessionIdString?기기 단위로 유지되는 세션 식별자
⚠️ 조회 메서드는 플레이어가 실행된 뒤에만 값이 있습니다. 초기화 전이나 실행 전에 호출하면 null 입니다. 화면 상태에 따라 값이 없을 수 있으므로 항상 null 검사를 하세요.


Did this page help you?
🏠 소스라이브 🎬 소스클립 🔗 소스링크 📢 소스애드
🧩 API 가이드
🆕 최근 업데이트
💬 도움이 더 필요하신가요?
메일로 문의 카카오톡 채널로 문의
담당자에게 문의하기

궁금한 점이나 불편했던 점을 남겨주시면 담당자가 확인 후 답변드릴게요.

가이드 챗봇
* AI를 활용해 답변해서 사실과 다를 수도 있어요. 더 궁금한 사항은 '담당자에게 문의하기'를 이용해주세요.
💡 궁금한 솔루션(예: 라이브, 링크 등)을 함께 적어주시면 더 정확한 답변을 받을 수 있어요.
startObserver(); if (currentLang !== 'ko') { document.documentElement.setAttribute('lang', currentLang); translatePage(currentLang); } } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); else init(); })();