API - Option
ShopLive.setUser
Shoplive를 사용하는 인증 사용자를 설정합니다.
사용자 인증을 하려면 사용자 정보를 입력하세요.
void setUser(@NonNull ShopLiveUser user)
샘플 코드
ShopLiveUser user = new ShopLiveUser();
user.setUserId("testId");
user.setUserName("kate");
user.setAge(20);
user.setGender(ShopLiveUserGender.Female);
user.setUserScore(100);
ShopLive.setUser(user);
enum
ShopLiveUserGender
타입 | 설명 |
---|---|
Male | 남성 |
Female | 여성 |
Neutral | 성별 지정 안 함 |
- 적용 가이드
ShopLive.setAuthToken
Shoplive를 사용하는 인증된 사용자의 보안 인증토큰(JWT) string입니다.
사용자 인증을 위해 인증된 사용자의 보안 인증토큰(JWT) string을 입력합니다.
void setAuthToken(@NonNull String authToken)
샘플 코드
String generatedJWT = "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2MTA1NzA1dfadsfasfadsfasdfwO"
ShopLive.setAuthToken(generatedJWT);
- 적용 가이드
ShopLive.getAuthToken
Shoplive를 사용하는 인증된 사용자의 보안 인증토큰(JWT) string입니다.
사용자 인증을 위해 인증된 사용자의 보안 인증토큰(JWT) string을 반환합니다.
String getAuthToken()
샘플 코드
Log.d("TAG", "authToken = " + ShopLive.getAuthToken());
ShopLive.setPIPRatio
PIP 화면 모드를 시작할 때 기본 화면 배율입니다.
처음 재생 후 PIP 화면 모드를 시작하면 지정된 화면 배율로 PIP 화면 모드를 시작합니다.
void setPIPRatio(@NonNull ShopLivePIPRatio ratio)
샘플 코드
ShopLive.setPIPRatio(ShopLivePIPRatio.RATIO_9X16);
enum
ShopLivePIPRatio
RATIO_1X1 | 1 x 1 |
---|---|
RATIO_1X2 | 1 x 2 |
RATIO_2X3 | 2 x 3 |
RATIO_3X4 | 3 x 4 |
RATIO_9X16 | 9 x 16 |
ShopLive.setKeepAspectOnTabletPortrait
태블릿 세로모드에서 Shoplive 화면 비율을 설정합니다.
true
: 화면 비율 유지 (기본값)
false
: 화면 가득 채움
void setKeepAspectOnTabletPortrait(Boolean isKeepAspectOnTabletPortrait)
매개변수 | 설명 |
---|---|
isKeepAspectOnTabletPortrait | true : 화면 비율 유지false : 화면 가득 채움 |
샘플 코드
ShopLive.setKeepAspectOnTabletPortrait(true);
- 적용 가이드
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged
이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상이 멈춥니다.
하지만, 필요한 경우 동영상을 계속 재생하도록 설정할 수 있고, 음소거 상태로 처리할 수 있습니다.
- 블루투스 이어폰 (또는 헤드셋)이 끊겼을 때 무음으로 변경하기
setKeepPlayVideoOnHeadphoneUnplugged(true, true)
로 설정하려면 AndroidManifest.xml에BLUETOOTH_CONNECT
선언 후, 방송 진입 전에 먼저 런타임 권한을 허용해야 합니다.
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
void setKeepPlayVideoOnHeadphoneUnplugged(Boolean isKeepPlayVideoOnHeadphoneUnplugged)
void setKeepPlayVideoOnHeadphoneUnplugged(Boolean isKeepPlayVideoOnHeadphoneUnplugged, Boolean isMute)
매개변수 | 설명 |
---|---|
isKeepPlayVideoOnHeadphoneUnplugged | true : 동영상 계속 재생false : 동영상 일시 정지 |
isMute | true : 시스템 볼륨 음소거 처리f alse : 시스템 볼륨 재생 유지 |
샘플 코드
// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 일시 정지로 설정
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(false);
// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 계속 재생으로 설정
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true);
// 이어폰 (또는 헤드셋) 연결이 끊겼을 때 동영상 계속 재생으로 설정하고, 음소거 처리
ShopLive.setKeepPlayVideoOnHeadphoneUnplugged(true, true));
크기 설정 예시
크기 | PIP 화면 | 크기 | PIP 화면 | 크기 | PIP 화면 |
---|---|---|---|---|---|
0.1 | 0.4 (기본) | 0.8 |
- 적용 가이드
ShopLive.setAutoResumeVideoOnCallEnded
통화 종료 후 동영상으로 되돌아 왔을 때 계속 동영상이 재생됩니다.
하지만, 필요한 경우 동영상을 일시 정지되도록 설정할 수 있습니다.
안드로이드 권한 요청이 필요한 API
필요 권한:
READ_PHONE_STATE
void setAutoResumeVideoOnCallEnded(Boolean isAutoResumeVideoOnCallEnded)
매개변수 | 설명 |
---|---|
isAutoResumeVideoOnCallEnded | true : 동영상 계속 재생false : 동영상 일시 정지 |
샘플 코드
ShopLive.setAutoResumeVideoOnCallEnded(true);
- 적용 가이드
ShopLive.setShareScheme
공유하기를 선택했을 때 전달할 URL
또는 scheme
을 설정합니다.
매개변수 | 설명 |
---|---|
shareUrl | 공유할 scheme 또는 URL |
샘플 코드
String scheme = "shoplive://live";
String scheme = "https://shoplive.cloud/live";
ShopLive.setShareScheme(scheme);
- 적용 가이드
ShopLive.setLoadingProgressColor
동영상 로딩 프로그레스 바 색을 설정합니다.
void setLoadingProgressColor(String hexColor)
매개변수 | 설명 |
---|---|
hexColor | 프로그레스 바에 설정할 색 hex 값으로 입력 |
샘플 코드
// 색의 hex 값을 입력하세요. ex) "#FFFFFF"
ShopLive.setLoadingProgressColor("#FFFFFF");
- 적용 가이드
ShopLive.setLoadingAnimation
동영상 로딩 프로그레스 바를 이미지 애니메이션으로 설정합니다.
void setLoadingAnimation(int animationDrawable)
매개변수 | 설명 |
---|---|
animationDrawable | 이미지 배열 리소스 |
샘플 코드
// 이미지 애니메이션 설정
ShopLive.setLoadingAnimation(R.drawable.progress_animation);
// 이미지 애니메이션 해제
ShopLive.setLoadingAnimation(0);
- 적용 가이드
ShopLive.setChatViewTypeface
채팅 폰트와 채팅 전송 버튼 폰트를 설정합니다.
- 채팅 폰트와 채팅 전송 버튼 폰트를 모두 같게 적용하려면
setChatViewTypeface(typeface)
함수를 호출합니다. - 채팅 폰트와 채팅 전송 버튼 폰트를 다르게 적용하려면
setChatViewTypeface(inputBoxTypeface, sendButtonTypeface)
함수를 호출합니다.
void setChatViewTypeface(Typeface typeface)
void setChatViewTypeface(Typeface inputBoxTypeface, Typeface sendButtonTypeface)
매개변수 | 설명 |
---|---|
typeface | 채팅 폰트와 채팅 전송 버튼 폰트를 공통으로 설정할 폰트 |
inputBoxTypeface | 채팅 폰트 |
sendButtonTypeface | 채팅 전송 버튼 폰트 |
샘플 코드
Typeface nanumGothic = getResources().getFont(R.font.nanumgothic);
Typeface nanumGothicBold = getResources().getFont(R.font.nanumgothicbold);
/*
채팅 폰트 및 채팅 전송 버튼 폰트 공통 설정
setChatViewTypeface(Typeface typeface)
*/
ShopLive.setChatViewTypeface(nanumGothic);
/*
채팅 폰트 및 채팅 전송 버튼 폰트 개별 설정
setChatViewTypeface(Typeface inputBoxTypeface, Typeface sendButtonTypeface)
*/
ShopLive.setChatViewTypeface(nanumGothic, nanumGothicBold);
- 적용 가이드
ShopLive.setEnterPipModeOnBackPressed
동영상 시청 중, 뒤로 버튼을 선택(탭) 하여 화면을 빠져 나가면, 동영상이 종료됩니다.
하지만, 이 옵션을 사용하여 PIP 화면 모드로 전환하여 계속 동영상을 시청하도록 설정할 수 있습니다.
void setEnterPipModeOnBackPressed(Boolean isEnterPipModeOnBackPressed)
매개변수 | 설명 |
---|---|
isEnterPipModeOnBackPressed | true : PIP 화면 모드로 전환false : 동영상 종료 |
샘플 코드
ShopLive.setEnterPipModeOnBackPressed(true);
ShopLive.close
시청 중인 방송을 종료합니다.
void close()
샘플 코드
ShopLive.close();
ShopLive.setAutoCloseWhenAppDestroyed
루트 액티비티가 종료되어도 방송이 종료되지 않도록 설정할 수 있습니다.
이 옵션을 사용하는 이유는 Intent.FLAG_ACTIVITY_NEW_TASK
옵션을 사용하여 루트 액티비티를 다시 실행시킬 때 방송이 종료될 수 있으므로 앱이 종료되는 적절한 시점에 ShopLive.close
함수를 직접 호출하여 종료할 수 있도록 하기 위한 것입니다.
- 기본값:
자동 종료
- 설정하지 않으면, 앱이 종료될 때 방송이 함께 종료됩니다.
void setAutoCloseWhenAppDestroyed(Boolean isAutoClose)
매개변수 | 설명 |
---|---|
isAutoClose | true : 앱 종료 시 방송 종료 (기본값)false : 앱 종료 시 방송 종료되지 않음 |
샘플 코드
ShopLive.setAutoCloseWhenAppDestroyed(false);
ShopLive.startPictureInPicture
전체 화면 모드에서 PIP 화면 모드로 전환합니다.
void startPictureInPicture()
샘플 코드
ShopLive.startPictureInPicture();
ShopLive.stopPictureInPicture
PIP 화면 모드를 전체 화면 모드로 전환합니다.
void stopPictureInPicture()
샘플 코드
ShopLive.stopPictureInPicture();
ShopLive.getStatus
현재 Shoplive Player 화면 상태입니다.
Status getStatus()
enum
Status
상태 | 설명 |
---|---|
None | 상태 없음 |
PIP | PIP 모드 |
Full | 전체 화면 모드 |
샘플 코드
Log.d("TAG", "status = " + ShopLive.getStatus());
ShopLive.isSuccessCampaignJoin
방송 진입에 성공했을 때 전달되는 정보입니다.
boolean isSuccessCampaignJoin()
샘플 코드
Log.d("TAG", "isSuccessCampaignJoin = " + ShopLive.isSuccessCampaignJoin());
ShopLive.sendCommandMessage
서버로 command와 payload를 전달합니다.
사전 정의된 형식의 command, payload 를 전달할 수 있습니다. (또는, Shoplive와 협의하여 command와 payload를 정의할 수 있습니다.)
void sendCommandMessage(String command, String payload)
매개변수 | 설명 |
---|---|
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(Boolean isMute)
Shoplive Player를 시작할 때 사운드가 켜지도록 하거나 음소거하도록 설정합니다.
(기본값: 사운드가 켜진 상태로 Shoplive Player를 시작합니다.)
void setMuteWhenPlayStart(Boolean isMute)
매개변수 | 설명 |
---|---|
ShopLive.setMuteWhenPlayStart | 음소거 설정 여부true : 음소거로 시작false : 사운드 켜진 상태로 시작 |
샘플 코드
// Shoplive Player를 시작할 때 음소거하도록 설정
ShopLive.setMuteWhenPlayStart(true)
//Shoplive Player를 시작할 때 사운드가 켜지도록 설정
ShopLive.setMuteWhenPlayStart(false)
ShopLive.setAppVersion
앱 버전을 설정합니다.
API를 호출하지 않아도 기본값으로 앱 버전을 읽고 서버로 전달됩니다.
이 기능을 사용하려면 Shoplive 담당자에게 문의하세요.
void setAppVersion(String appVersion)
매개변수 | 설명 |
---|---|
appVersion | 앱 버전 |
샘플 코드
val appVersion: String = “1.0.0”
ShopLive.setAppVersion(appVersion)
ShopLive.setUiMessage
기본으로 제공되는 메시지를 고객사에서 원하는 메시지로 변경할 수 있습니다.
void setUiMessage(@NonNull UiMessageType type, @NonNull String message)
void setUiMessage(@NonNull UiMessageType type, @StringRes int res)
enum | 설명 |
---|---|
NOT_SUPPORT_PIP | Android 8.0 미만에서 PIP 사용 불가능 |
샘플 코드
ShopLive.setUiMessage(ShopLive.UiMessage.NOT_SUPPORT_PIP, “Android 8.0 미만은 PIP 기능을 사용할 수 없습니다.”)
ShopLive.setUiMessage(ShopLive.UiMessage.NOT_SUPPORT_PIP, R.string.not_support_pip)
ShopLive.setStatusBarTransparent
영상을 상태바 영역까지 표시할 수 있습니다.
void setStatusBarTransparent(Boolean isTransparent)
매개변수 | 설명 |
---|---|
isTransparent | 상태바까지 영상을 표시하기 사용 여부 (true:사용, false:미사용) |
샘플 코드
ShopLive.setStatusBarTransparent(true)
ShopLive.setSoundFocusHandling
영상 재생중에 전화가 오거나 다른 앱의 플레이어 사용으로 인해 사운드를 빼앗긴 경우 이벤트를 받아 직접 처리할 수 있습니다.
void setSoundFocusHandling(@Nullable OnAudioFocusListener listener)
매개변수 | 설명 |
---|---|
listener | AudioFocusListener |
샘플 코드
ShopLive.setSoundFocusHandling(object : OnAudioFocusListener {
override fun onGain() {
ShopLive.unmute()
}
override fun onLoss() {
ShopLive.mute()
}
})
ShopLive.closeDialogFragment
ShopLive.showDialogFragment(fragment)
로 띄운 다이얼로그를 종료합니다.
ShopLive.closeDialogFragment()
샘플 코드
ShopLive.closeDialogFragment()
ShopLive.setPlayerScreenCaptureEnabled
방송 화면의 스크린 샷을 막을 수 있습니다.
void setPlayerScreenCaptureEnabled(Boolean isEnabled)
매개변수 | 설명 |
---|---|
isEnabled | true : 화면캡쳐기능 활성화, false : 화면캡쳐기능 비활성화 |
// 화면 캡쳐 비활성화
ShopLive.setPlayerScreenCaptureEnabled(false)
// 화면 캡쳐 활성화
ShopLive.setPlayerScreenCaptureEnabled(true)
Updated over 2 years ago