SDK 주요 메서드
표Android SDK 주요 메서드 목록대분류 | 메서드 | 설명 |
---|---|---|
주요 메서드 | init() | Android 버전의 Kakao i Connect Live SDK 2.0을 초기화 - 모든 메서드를 호출하기 전 반드시 init() 메서드 호출 필요 |
signIn()_커넥트 라이브 내부 인증 | SDK의 내부 인증 방식으로 인증을 수행하며, 인증 처리 후 결과는 Callback 형태로 전달 - 인증 과정에서 발생한 에러는 ErrorHandler에서 확인 |
signIn()_서비스 자체 인증 | 서비스 자체 방식으로 인증을 수행하며, 인증 처리 후 결과는 Callback 형태로 전달 - 인증 과정에서 발생한 에러는 ErrorHandler에서 확인 |
|
signOut() | SDK의 인증을 해제하고, 인증 관련 리소스 해제 | |
createRoom() | Room 객체 생성 | |
createLocalMedia() | Local Participant(로컬 참여자)가 생성하는 로컬 오디오와 로컬 비디오의 컨테이너인 LocalMedia 객체 생성 | |
createLocalScreen() | Android 5(API 수준 21)에 도입된 MediaProjection API를 사용하여 안드로이드 화면 공유를 위한 컨테이너 생성 | |
createLocalCamera() | Local Participant(로컬 참여자)가 생성하는 로컬 비디오를 처리하기 위해 LocalCamera 객체 생성 | |
createLocalAudio() | Local Participant(로컬 참여자)가 생성하는 로컬 오디오를 처리하기 위해 LocalAudio 객체 생성 |
init()
Android 버전의 Kakao i Connect Live SDK 2.0을 초기화합니다. 모든 메서드를 호출하기 전 반드시 init() 메서드를 호출해야 합니다.
코드예제init() Syntax
init(final Context context)
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
context | Context | 필수 |
SDK 내부의 애플리케이션 콘텍스트 |
signIn()_커넥트 라이브 내부 인증
카카오 i 커넥트 라이브 2.0 SDK의 자체 인증 방식으로 인증(Provisioning)을 수행합니다. 인증 처리 후 결과는 Callback 형태로 전달하며, 인증 과정에서 발생한 에러는 ErrorHandler에서 확인할 수 있습니다. 인증 및 키(Key) 처리에 대한 자세한 설명은 인증 및 키 처리 문서를 참고하시기 바랍니다.
코드예제signIn()_커넥트 라이브 내부 인증 Syntax
ConnectLive.signIn {
endpoint = "https://icl2-provisioning-ap2.k9ertc.io/api/rpc"
serviceId = "ICLEXMPLPUBL"
serviceSecret = "YOUR0SRVC0SECRET"
errorHandler = ErrorHandler { code, message, isFatal ->
// 에러 처리
}
}
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
endpoint | String | 선택 |
OAuth 2.0 연동에서 토큰 관련 작업을 수행하기 위한 프로비저닝 서버의 엔드포인트 - https://icl2-provisioning-ap2.k9ertc.io/api/rpc 로 고정 |
serviceId | String | 필수 |
각 워크스페이스에 할당되어있는 공개 ID로, 서비스 구분에 활용되는 유일값 - 콘솔에서 발급 |
serviceSecret | String | 선택 |
각 participant(참여자)에게 할당되는 임시 비밀키 - 콘솔에서 발급 |
token | String | 선택 |
서비스에서 발급받은 토큰 - 서비스 자체 인증인 경우에만 필요 |
errorHandler | ErrorHandler | 필수 |
에러 상황을 처리하기 위한 핸들러 |
Throws
표signIn()_커넥트 라이브 내부 인증 Throws항목 | 설명 |
---|---|
IllegalStateException | 기존 로그인이 유효한 상태로 재인증이 필요 없음 |
IllegalArgumentException | 필요한 정보가 누락되거나 불필요한 정보가 존재 |
signIn()_서비스 자체 인증
커넥트 라이브 내부 인증 인증 방식이 아닌 서비스 자체의 인증 방식을 사용할 수 있습니다. 인증 과정에서 발생한 에러는 ErrorHandler에서 확인할 수 있습니다. 인증 및 키(Key) 처리에 대한 자세한 설명은 인증 및 키 처리 문서를 참고하시기 바랍니다.
코드예제signIn()_서비스 자체 인증 Syntax
ConnectLive.signIn {
endpoint = "https://icl2-provisioning-ap2.k9ertc.io/api/rpc"
serviceId = "ICLEXMPLPUBL"
token = "YOUR_SERVICE_TOKEN"
errorHandler = ErrorHandler { code, message, isFatal ->
// 에러 처리
}
}
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
endpoint | String | 선택 |
OAuth 2.0 연동에서 토큰 관련 작업을 수행하기 위한 프로비저닝 서버의 엔드포인트 - https://icl2-provisioning-ap2.k9ertc.io/api/rpc 으로 고정 |
serviceId | String | 필수 |
각 워크스페이스에 할당되어있는 공개 ID로, 서비스 구분에 활용되는 유일값 - 콘솔에서 발급 |
token | String | 선택 |
서비스에서 발급받은 토큰 - 서비스 자체 인증인 경우에만 필요 |
errorHandler | ErrorHandler | 필수 |
에러 상황을 처리하기 위한 핸들러 |
Throws
표signIn()_서비스 자체 인증 Throws파라미터 | 타입 |
---|---|
IllegalStateException | 기존 로그인이 유효한 상태로 재인증이 필요 없음 |
IllegalArgumentException | 필요한 정보가 누락되거나 불필요한 정보가 존재 |
signOut()
SDK의 인증을 해제하고, 인증 관련 리소스를 정리합니다.
코드예제signOut() Syntax
ConnectLive.signOut()
createRoom()
Room 객체를 생성합니다. Room은 서비스에 따라 채팅방, 화상회의실 등 참여자들이 서비스를 이용하기 위해 입장하는 공간입니다.
코드예제createRoom() Syntax
class OnEventListener : EventsCallback {
override fun onConnecting(progress: Float) {
...
}
...
}
...
val room = ConnectLive.createRoom(events = OnEventListener())
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
config | Room.Config | 선택 |
영상 리시버 운용을 설정 - 일반적인 시나리오에선 주입하지 않아도 됨(SDK 기본값으로 수행) - 자세한 설명은 Room.Config 참고 |
events | Room.Events | 선택 |
Room에서 발생하는 이벤트를 받기 위한 Callback - 자세한 설명은 Room.Events 문서 참고 |
Throws
표createRoom() Throws항목 | 타입 |
---|---|
IllegalStateException | 로그인이 유효하지 않음 |
Returns
표createRoom() Returns반환 | 타입 | 설명 |
---|---|---|
Room | Room | 참여자들이 입장하는 Room 객체를 생성 |
createLocalMedia()
Local Participant(로컬 참여자)가 생성하는 로컬 오디오와 로컬 비디오의 컨테이너인 LocalMedia 객체를 생성합니다.
코드예제createLocalMedia() Syntax
val localMedia = ConnectLive.createLocalMedia(preferFrontCamera, ignoreErrors = true)
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
preferFrontCamera | Boolean | 선택 |
스트리밍 서비스에서 사용할 카메라의 초기화 설정 |
true (기본값): 전면 카메라를 사용 |
|||
false : 후면 카메라를 사용 |
|||
ignoreErrors | Boolean | 선택 |
LocalMedia 객체 생성 중 발생하는 에러의 Throw 처리 여부 |
true : 에러 발생 시 로그만 발생시키며, Throw 처리를 하지 않음 |
|||
false (기본값): 에러 발생 시 Throw 처리 |
Throws
표createLocalMedia() Throws항목 | 설명 |
---|---|
IllegalStateException | 장치 접근 권한(CAMERA, RECORD_AUDIO)이 확보되지 않음 |
Returns
표createLocalMedia() Returns반환 | 타입 | 설명 |
---|---|---|
LocalMedia | LocalMedia | 로컬 카메라와 마이크의 컨테이너 |
createLocalScreen()
Android 5(API 수준 21)에 도입된 MediaProjection API를 사용하여 안드로이드 화면 공유를 위한 컨테이너를 생성합니다. LocalScreen
의 extraValue
는 screen(기본값)으로 설정됩니다.
코드예제createLocalScreen() Syntax
val publishLocalScreen =
registerForActivityResult(VideoCapturerFactory.CreateScreenCapture) { data ->
if (data != null) {
publishLocalScreen(data)
}
}
...
fun publishLocalScreen(data: Intent) {
val localScreen = ConnectLive.createLocalScreen(data, onStop = {
...
})
room.publish(localScreen)
}
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
data | Intent | 필수 |
화면 공유 요청에 대한 승인 결과 |
onStop | (LocalScreen) → Unit | 필수 |
화면 공유 중단에 대한 Callback - MediaProjection.Callback 참고 |
Returns
표createLocalScreen() Returns반환 | 타입 | 설명 |
---|---|---|
LocalScreen | LocalScreen | 로컬 화면만 포함된 컨테이너 |
createLocalCamera()
Local Participant(로컬 참여자)가 생성하는 로컬 비디오를 처리하기 위해 LocalCamera 객체를 생성합니다.
코드예제createLocalCamera() Syntax
val camera = ConnectLive.createLocalCamera(preferFrontCamera = true).apply {
start()
}
파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
preferFrontCamera | Boolean | 선택 |
전면 카메라 우선 여부 |
true (기본값): 카메라 전면 우선 사용 |
|||
false : 후면 사용 |
Returns
표createLocalScreen() Returns반환 | 타입 | 설명 |
---|---|---|
LocalCamera | LocalCamera | Local Participant의 카메라를 나타내는 객체 |
createLocalAudio()
Local Participant(로컬 참여자)가 생성하는 로컬 오디오를 처리하기 위해LocalAudio 객체를 생성합니다.
코드예제createLocalAudio() Syntax
val audio = ConnectLive.createLocalAudio()
Returns
표createLocalAudio() Returns반환 | 타입 | 설명 |
---|---|---|
LocalAudio | LocalAudio | Local Participant의 오디오(마이크)를 나타내는 객체 |