Example
플레이어를 띄우고 이벤트를 처리하는 가장 작은 예제입니다. 초기화용 Application 과 플레이어를 실행할 화면, 파일 두 개로 구성됩니다.
최소 통합 예제
플레이어를 띄우고 앱이 받아야 할 이벤트를 처리하는 가장 작은 형태입니다.
구성은 파일 두 개입니다 — 초기화용 Application 과 플레이어를 실행할 화면 하나.
📘 단계별 설명이 필요하면 — 이 예제는 전체 그림을 보기 위한 것입니다. 각 부분의 이유와 선택지는 Quickstart 에서 다룹니다.
전체 코드
① MyApplication.kt — 앱 시작 시 한 번
Kotlin
import android.app.Application import com.mobidoo.sauce.SauceClient class MyApplication : Application() { override fun onCreate() { super.onCreate() SauceClient.init( context = this, appKey = "발급받은 appKey", environment = "stage" // 테스트 환경. 실제 서비스에서는 "prod" ) } }
❗ appKey 를 소스 코드에 그대로 적지 마세요 — 저장소에 올라가면 유출됩니다. 빌드 설정이나 서버에서 주입하는 방식을 쓰고, 위 예제의 문자열은 어디에 넣는지 보여 주기 위한 자리 표시입니다.
② LiveActivity.kt — 플레이어 실행 + 이벤트 처리
Kotlin
import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.mobidoo.sauce.SauceClient import com.mobidoo.saucecore.callbacklistener.LivePlayerCallbackListener class LiveActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_live) // 1) 이벤트 리스너를 먼저 등록합니다 registerCallbacks() // 2) 플레이어를 실행합니다 findViewById<Button>(R.id.btn_watch).setOnClickListener { SauceClient.startLivePlayer( context = this, broadcastId = "어드민에서 확인한 라이브 ID", token = "앱이 보관한 사용자 토큰" // 없으면 null → 게스트로 시청 ) } } private fun registerCallbacks() { SauceClient.setLivePlayerCallbackListener(object : LivePlayerCallbackListener { // 게스트가 회원 기능을 시도했을 때. 플레이어는 열린 채로 유지됩니다 override fun onLoginRequest(context: LoginRequestContext) { startActivity(Intent(this@LiveActivity, LoginActivity::class.java)) // 로그인 후: SauceClient.updateAccessToken(newToken) } // 상품을 눌러 구매 페이지로 갈 때. 등록하지 않으면 이동하지 않습니다 override fun onProductClick(info: ProductClickInfo): Boolean { openProductScreen(info.url) return true } override fun onCart(productId: String) { if (productId.isBlank()) return // 어드민에 상품 ID 가 없으면 빈 값이 옵니다 cartRepository.add(productId) } override fun onCouponDownload(couponCode: String) { couponRepository.issue(couponCode) } }) } }
예제에서 짚어둘 것
| 지점 | 이유 |
|---|---|
| appKey 를 소스에 직접 쓰지 않음 | appKey 는 빌드 설정이나 보안 저장소에서 주입하세요. 소스에 넣으면 앱을 분석해 꺼낼 수 있습니다 |
| 리스너를 먼저 등록 | 플레이어를 실행한 뒤 등록하면 초기 이벤트를 놓칠 수 있습니다 |
onLoginRequest 에서 화면 이동 |
플레이어는 열린 채로 유지됩니다. 로그인 후 updateAccessToken 을 호출하세요 |
productId 빈 값 검사 |
어드민에 상품 ID 를 입력하지 않았다면 빈 문자열이 전달됩니다 |
| 디버그 빌드에서 테스트 환경 | 연동·테스트 중에는 environment = "stage" 로 두어 테스트 데이터가 실제 집계에 섞이지 않게 하세요. 실제 서비스 배포 전에 "prod" 로 바꿉니다 |
여기서 더 나아가려면
| 하고 싶은 것 | 참고 |
|---|---|
| 회원으로 시청하게 하기 | 3. 사용자 인증하기 |
| 다른 화면으로 이동해도 시청 유지 | D. PIP 설정하기 |
| 콜백·메서드 전체 목록 | API Reference |
Updated 6 days ago
Did this page help you?
