API - Option

ShopLive.setUser

Shoplive를 사용하는 인증 사용자를 설정합니다.
사용자 인증을 하려면 사용자 정보를 입력하세요.

fun setUser(user: ShopLiveUser)

샘플 코드

val user = ShopLiveUser().apply {
	userId = "testId"
	userName = "kate"
	age = 20
	gender = ShopLiveUserGender.Female
	userScore = 100
}

ShopLive.setUser(user)

enum ShopLiveUserGender

타입설명
Male남성
Female여성
Neutral성별 지정 안 함
  • 적용 가이드

간편 인증 사용자 계정 연동


ShopLive.setAuthToken

Shoplive를 사용하는 인증된 사용자의 보안 인증토큰(JWT) string입니다.
사용자 인증을 위해 인증된 사용자의 보안 인증토큰(JWT) string을 입력합니다.

fun setAuthToken(authToken: String)

샘플 코드

val generatedJWT = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA1NzA1dfadsfasfadsfasdfwO"

ShopLive.setAuthToken(generatedJWT)
  • 적용 가이드

보안 인증 사용자 계정 연동


ShopLive.getAuthToken

Shoplive를 사용하는 인증된 사용자의 보안 인증토큰(JWT) string입니다.
사용자 인증을 위해 인증된 사용자의 보안 인증토큰(JWT) string을 반환합니다.

fun getAuthToken(): String

샘플 코드

Log.d("TAG", "authToken = ${ShopLive.getAuthToken()}")

ShopLive.setPIPRatio

PIP 화면 모드를 시작할 때 기본 화면 배율입니다.
처음 재생 후 PIP 화면 모드를 시작하면 지정된 화면 배율로 PIP 화면 모드를 시작합니다.

fun setPIPRatio(ratio: ShopLivePIPRatio)

샘플 코드

ShopLive.setPIPRatio(ShopLivePIPRatio.RATIO_9X16)

enum ShopLivePIPRatio

RATIO_1X11 x 1
RATIO_1X21 x 2
RATIO_2X32 x 3
RATIO_3X43 x 4
RATIO_9X169 x 16
  • 적용 가이드

PIP(Picture-in-Picture)로 전환하기


ShopLive.setKeepAspectOnTabletPortrait

태블릿 세로모드에서 Shoplive 화면 비율을 설정합니다.
true: 화면 비율 유지 (기본값)
false: 화면 가득 채움

fun setKeepAspectOnTabletPortrait(isKeepAspectOnTabletPortrait: Boolean)

매개변수

설명

isKeepAspectOnTabletPortrait

true: 화면 비율 유지
false: 화면 가득 채움

샘플 코드

ShopLive.setKeepAspectOnTabletPortrait(true)
  • 적용 가이드

태블릿 세로 모드에서 화면 비율 설정하기


ShopLive.setKeepPlayVideoOnHeadphoneUnplugged

이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상이 멈춥니다.
하지만, 필요한 경우 동영상을 계속 재생하도록 설정할 수 있고, 음소거 상태로 처리할 수 있습니다.

  • 블루투스 이어폰 (또는 헤드셋)이 끊겼을 때 무음으로 변경하기setKeepPlayVideoOnHeadphoneUnplugged(true, true)로 설정하려면 AndroidManifest.xml에 BLUETOOTH_CONNECT 선언 후, 방송 진입 전에 먼저 런타임 권한을 허용해야 합니다.
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
fun setKeepPlayVideoOnHeadphoneUnplugged(isKeepPlayVideoOnHeadphoneUnplugged: Boolean)
fun setKeepPlayVideoOnHeadphoneUnplugged(isKeepPlayVideoOnHeadphoneUnplugged: Boolean, isMute: Boolean)

매개변수

설명

isKeepPlayVideoOnHeadphoneUnplugged

true: 동영상 계속 재생
false: 동영상 일시 정지

isMute

true: 시스템 볼륨 음소거 처리
false: 시스템 볼륨 재생 유지

샘플 코드

// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 일시 정지로 설정
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(false)

// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 계속 재생으로 설정
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true)

// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 계속 재생으로 설정하고, 음소거 처리
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true, true)
  • 적용 가이드

이어폰 (또는 헤드셋) 연결 끊김으로 인한 인터럽트


ShopLive.setAutoResumeVideoOnCallEnded

통화 종료 후 동영상으로 되돌아 왔을 때 계속 동영상이 재생됩니다.
하지만, 필요한 경우 동영상을 일시 정지되도록 설정할 수 있습니다.

안드로이드 권한 요청이 필요한 API

필요 권한: READ_PHONE_STATE

fun setAutoResumeVideoOnCallEnded(isAutoResumeVideoOnCallEnded: Boolean)

매개변수

설명

isAutoResumeVideoOnCallEnded

true: 동영상 계속 재생
false: 동영상 일시 정지

샘플 코드

ShopLive.setAutoResumeVideoOnCallEnded(true)
  • 적용 가이드

통화 연결로 인한 인터럽트


ShopLive.setShareScheme

공유하기를 선택했을 때 전달할 URL 또는 scheme을 설정합니다.

매개변수설명
shareUrl공유할 scheme또는 URL

샘플 코드

val scheme = "shoplive://live" // or "https://shoplive.cloud/live"

ShopLive.setShareScheme(scheme)
  • 적용 가이드

방송 링크 공유하기


ShopLive.setLoadingProgressColor

동영상 로딩 프로그레스 바 색을 설정합니다.

fun setLoadingProgressColor(hexColor: String)

매개변수

설명

hexColor

프로그레스 바에 설정할 색
hex 값으로 입력

샘플 코드

// 색의 hex 값을 입력하세요. ex) "#FFFFFF"
ShopLive.setLoadingProgressColor("#FFFFFF")
  • 적용 가이드

프로그레스 바 설정하기


ShopLive.setLoadingAnimation

동영상 로딩 프로그레스 바를 이미지 애니메이션으로 설정합니다.

fun setLoadingAnimation(animationDrawable: Int)
매개변수설명
animationDrawable이미지 배열 리소스

샘플 코드

// 이미지 애니메이션 설정
ShopLive.setLoadingAnimation(R.drawable.progress_animation)

// 이미지 애니메이션 해제
ShopLive.setLoadingAnimation(0)
  • 적용 가이드

프로그레스 바 설정하기


ShopLive.setChatViewTypeface

채팅 폰트와 채팅 전송 버튼 폰트를 설정합니다.

  • 채팅 폰트와 채팅 전송 버튼 폰트를 모두 적용하려면 setChatViewTypeface(typeface) 함수를 호출합니다.
fun setChatViewTypeface(typeface: Typeface)
매개변수설명
typeface채팅 폰트와 채팅 전송 버튼 폰트를 공통으로 설정할 폰트

샘플 코드

val nanumGothic = resources.getFont(R.font.nanumgothic)
val nanumGothicBold = resources.getFont(R.font.nanumgothicbold)

ShopLive.setChatViewTypeface(nanumGothic)
  • 적용 가이드

채팅 폰트 변경하기


ShopLive.setEnterPipModeOnBackPressed

동영상 시청 중, 뒤로 버튼을 선택(탭) 하여 화면을 빠져 나가면, 동영상이 종료됩니다.
하지만, 이 옵션을 사용하여 PIP 화면 모드로 전환하여 계속 동영상을 시청하도록 설정할 수 있습니다.

fun setEnterPipModeOnBackPressed(isEnterPipModeOnBackPressed: Boolean)

매개변수

설명

isEnterPipModeOnBackPressed

true: PIP 화면 모드로 전환
false: 동영상 종료

샘플 코드

ShopLive.setEnterPipModeOnBackPressed(true)

ShopLive.close

시청 중인 방송을 종료합니다.

fun close()

샘플 코드

ShopLive.close()

ShopLive.setAutoCloseWhenAppDestroyed

루트 액티비티가 종료되어도 방송이 종료되지 않도록 설정할 수 있습니다.

이 옵션을 사용하는 이유는 Intent.FLAG_ACTIVITY_NEW_TASK 옵션을 사용하여 루트 액티비티를 다시 실행시킬 때 방송이 종료될 수 있으므로 앱이 종료되는 적절한 시점에 ShopLive.close 함수를 직접 호출하여 종료할 수 있도록 하기 위한 것입니다.

  • 기본값: 자동 종료
  • 설정하지 않으면, 앱이 종료될 때 방송이 함께 종료됩니다.
fun setAutoCloseWhenAppDestroyed(isAutoClose: Boolean)

매개변수

설명

isAutoClose

true: 앱 종료 시 방송 종료 (기본값)
false: 앱 종료 시 방송 종료되지 않음

샘플 코드

ShopLive.setAutoCloseWhenAppDestroyed(false)

ShopLive.startPictureInPicture

전체 화면 모드에서 PIP 화면 모드로 전환합니다.

fun startPictureInPicture()

샘플 코드

ShopLive.startPictureInPicture()
  • 적용 가이드

PIP(Picture-in-Picture)로 전환하기


ShopLive.stopPictureInPicture

PIP 화면 모드를 전체 화면 모드로 전환합니다.

fun stopPictureInPicture()

샘플 코드

ShopLive.stopPictureInPicture()
  • 적용 가이드

PIP(Picture-in-Picture)로 전환하기


ShopLive.getStatus

현재 Shoplive Player 화면 상태입니다.

fun getStatus(): Status

enum Status

상태설명
None상태 없음
PIPPIP 모드
Full전체 화면 모드

샘플 코드

Log.d("TAG", "status = ${ShopLive.getStatus()}")

ShopLive.isShowingPreviewPopup

현재 Shoplive Preview 진입에 성공했을 때 전달되는 정보입니다.

fun isSuccessCampaignJoin(): Boolean

샘플 코드

Log.d("TAG", "isShowingPreviewPopup = ${ShopLive.isShowingPreviewPopup()}")

ShopLive.isSuccessCampaignJoin

방송 진입에 성공했을 때 전달되는 정보입니다.

fun isSuccessCampaignJoin(): Boolean

샘플 코드

Log.d("TAG", "isSuccessCampaignJoin = ${ShopLive.isSuccessCampaignJoin()}"

ShopLive.sendCommandMessage

서버로 command와 payload를 전달합니다.
사전 정의된 형식의 command, payload 를 전달할 수 있습니다. (또는, Shoplive와 협의하여 command와 payload를 정의할 수 있습니다.)

fun sendCommandMessage(command: String, payload: String)
매개변수설명
command사전 정의된 command
payload사전 정의된 payload

샘플 코드

val command = “COMMAND_NAME”
val payload = JSONObject()

payload.put(“Int_Data”, 1)
payload.put(“String_Data”, “Sample_String”)

ShopLive.sendCommandMessage(command, payload.toString())

ShopLive.setMuteWhenPlayStart

Shoplive Player를 시작할 때 사운드가 켜지도록 하거나 음소거하도록 설정합니다.
(기본값: 사운드가 켜진 상태로 Shoplive Player를 시작합니다.)

fun setMuteWhenPlayStart(isMute: Boolean)

매개변수

설명

isMute

음소거 설정 여부
true: 음소거로 시작
false: 사운드 켜진 상태로 시작

샘플 코드

// Shoplive Player를 시작할 때 음소거하도록 설정
ShopLive.setMuteWhenPlayStart(true)

//Shoplive Player를 시작할 때 사운드가 켜지도록 설정
ShopLive.setMuteWhenPlayStart(false)

ShopLive.setAppVersion

앱 버전을 설정합니다.
API를 호출하지 않아도 기본값으로 앱 버전을 읽고 서버로 전달됩니다.
이 기능을 사용하려면 Shoplive 담당자에게 문의하세요.

fun setAppVersion(appVersion: String)
매개변수설명
appVersion앱 버전

샘플 코드

val appVersion: String = “1.0.0”
ShopLive.setAppVersion(appVersion)

ShopLive.setStatusBarTransparent

영상을 상태바 영역까지 표시할 수 있습니다.

fun setStatusBarTransparent(isTransparent: Boolean)
매개변수설명
isTransparent상태바까지 영상을 표시하기 사용 여부 (true:사용, false:미사용)

샘플 코드

ShopLive.setStatusBarTransparent(true)

ShopLive.setSoundFocusHandling

영상 재생중에 전화가 오거나 다른 앱의 플레이어 사용으로 인해 사운드를 빼앗긴 경우 이벤트를 받아 직접 처리할 수 있습니다.

fun setSoundFocusHandling(listener: OnAudioFocusListener?)
매개변수설명
listenerAudioFocusListener

샘플 코드

ShopLive.setSoundFocusHandling(object : OnAudioFocusListener {
override fun onGain() {
ShopLive.unmute()
}

override fun onLoss() {
ShopLive.mute()
}
})

ShopLive.showDialogFragment

Shoplive Player 화면에 사용자의 DialogFragment를 표시하기 위해 사용합니다.

fun showDialogFragment(dialogFragment: DialogFragment)
매개변수설명
dialogFragment사용자의 DialogFragment

샘플 코드

override fun handleNavigation(context: Context, url: String) {
val nexcActionType = "{your_action_type}"
when(nexcActionType) {
ShopLive.ActionType.KEEP -> {
ShopLive.showDialogFragment(WebViewDialogFragment(url))
}
}
}

ShopLive.closeDialogFragment

ShopLive.showDialogFragment(fragment)로 띄운 다이얼로그를 종료합니다.

fun closeDialogFragment()

샘플 코드

ShopLive.closeDialogFragment()

ShopLive.setPlayerScreenCaptureEnabled

방송 화면의 스크린 샷을 막을 수 있습니다.

fun setPlayerScreenCaptureEnabled(isEnabled: Boolean)
매개변수설명
isEnabledtrue : 화면캡쳐기능 활성화, false : 화면캡쳐기능 비활성화
// 화면 캡쳐 비활성화
ShopLive.setPlayerScreenCaptureEnabled(false)

// 화면 캡쳐 활성화
ShopLive.setPlayerScreenCaptureEnabled(true)

ShopLive.setMixWithOthers

외부 오디오가 재생될 때, 방송의 오디오를 설정할 수 있습니다.

fun setMixWithOthers(isMixAudio: Boolean)
매개변수설명
isMixAudiotrue : 외부 오디오와 함께 방송 시청, false : 외부 오디오가 재생되면 Player는 일시정지 (기본값:true)
// 외부 오디오가 재생되면 Player는 일시정지
ShopLive.setMixWithOthers(false)

// 외부 오디오와 함께 방송 시청
ShopLive.setMixWithOthers(true)

ShopLive.setAdId

광고 id를 tracking 할 수 있습니다. 데이터는 데이터 인사이트에서 확인 할 수 있습니다.

fun setAdId(adId: String)
매개변수설명
adId광고 id

샘플 코드

ShopLive.setAdId(“{your_adid}”)

ShopLive.addParameter

플레이어를 실행하기 전에 커스텀 데이터를 추가할 수 있습니다.

fun addParameter(key: String, value: String)
매개변수설명
key추가 적용할 커스텀 파라미터 key
value추가 적용할 커스텀 파라미터 value

샘플 코드

ShopLive.addParameter(“{key}”, “{value}”)

ShopLive.removeParameter

플레이어를 실행하기 전에 addParameter로 추가했던 커스텀 데이터를 삭제합니다.

fun removeParameter(key: String)
매개변수설명
key삭제할 파라미터 key

샘플 코드

ShopLive.removeParameter(“{key}”)

ShopLive.setNextActionOnHandleNavigation

사용자가 상품, 공지사항, 배너 등 링크를 선택하였을 때, Shoplive Player의 다음 동작을 설정합니다.

fun setNextActionOnHandleNavigation(type: ActionType)

enumActionType

매개변수설명
PIPPIP 전환
KEEP상태 유지
CLOSE종료

샘플 코드

ShopLive.setNextActionOnHandleNavigation(ActionType.PIP)
  • 적용 가이드

사용자 링크 선택 시 Shoplive Player의 다음 동작 설정하기


ShopLive.setEndpoint

Shoplive Player의 Web Landing 페이지가 아닌 특정 Landing 페이지 또는 URL에서 Shoplive 서비스를 사용해야 할 때 사용합니다.
예를 들어, 보안으로 인해 Shoplive Landing 페이지를 사용할 수 없는 경우, 특정 도메인으로 Landing 페이지를 생성할 수 있습니다.

※ Shoplive Player의 Web Landing 페이지는 Shoplive와 협의 후 적용할 수 있습니다.

fun setEndpoint(url: String)
매개변수설명
urlShoplive Player의 Web Landing url

샘플 코드

ShopLive.setEndpoint("https://www.your_landingpage.com/")