Android API
Android 버전의 카카오 i 커넥트 라이브 SDK 2.0에서 제공하는 전체 메서드 목록은 다음과 같습니다.
SDK 주요 메서드
표SDK 주요 메서드 목록구분 | 메서드 | 설명 |
---|---|---|
주요 메서드 | init() | 안드로이드 버전의 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 객체를 생성 |
Room
표Room 클래스 전체 목록클래스 | 구분 | 항목 | 설명 |
---|---|---|---|
Room | Property | localParticipant: LocalParticipant | Local Participant(로컬 참여자)의 정보를 담고 있는 객체 |
remoteParticipants: Map |
Remote Participant(리모트 참여자)의 정보를 담고 있는 객체 | ||
(mutable property) isMuted: Boolean | 전체 리모트 참여자의 오디오를 무음으로 설정할지 여부 | ||
Method | connect() | roomId로 식별되는 특정 Room에 접속 | |
disconnect() | 현재 접속 중인 Room과 연결 끊음 | ||
subscribe() | Room의 Remote Participant(리모트 참여자)가 공유한 비디오 수신(구독) | ||
unsubscribe() | 내가 수신하고 있는 리모트 참여자의 비디오 아이디(videoIds)를 인자로 사용하여 해당 리모트 비디오의 수신(구독) 중단 | ||
publish() | Local Participant(로컬 참여자)가 생성한 로컬 미디어(비디오 / 오디오)를 다른 리모트 참여자들과 공유 | ||
unpublish() | Local Participant(로컬 참여자)가 Room에 송출 중인 로컬 미디어(비디오 / 오디오)의 공유 취소 | ||
getVideo() | 특정 리모트 비디오 ID(videoId)를 인자로 사용하여, 해당 비디오가 속하는 리모트 비디오 객체 반환 | ||
getStats() | PeerConnection을 대상으로 전송 중 또는 수신 중인 미디어에 대한 품질 지표를 확인할 수 있는 RTCStats을 가져옴 | ||
subscribeStats() | PeerConnection을 대상으로 전송 중 또는 수신 중인 미디어에 대한 품질 지표를 확인할 수 있는 RTCStats을 특정 간격으로 전달받음 | ||
getAudioLevels() | 특정 간격으로 현재 참여자들의 오디오 볼륨 레벨 반환 | ||
sendUserMessage() | Room에 있는 특정 리모트 참여자 또는 전체 리모트 참여자에게 메시지를 전송 | ||
Room.Config() | 해당 Room에서 영상 수신을 위한 운용 설정 수행 |
Callback(Room.Events)
표Callback(Room.Events) 전체 목록구분 | 이벤트 | 설명 |
---|---|---|
Room.Events | onConnecting | 참여자가 해당 Room에 접속 진행 중 |
onConnected | 참여자가 해당 Room에 접속 성공 | |
onDisconnected | 참여자가 접속을 종료하거나 서버의 요청에 의해 종료 | |
onError | Room에서 에러 발생 | |
onLocalAudioPublished | Local Participant가 자신의 오디오(음성)를 공유 | |
onLocalAudioUnpublished | Local Participant가 공유 중인 오디오를 공유 해제 | |
onLocalVideoPublished | Local Participant가 자신의 비디오를 공유 | |
onLocalVideoUnpublished | Local Participant가 공유 중인 비디오를 공유 해제 | |
onParticipantEntered | 새로운 Remote Participant가 Room에 입장 | |
onParticipantLeft | Remote Participant가 Room에서 퇴장하여 Room과 연결이 끊김 | |
onRemoteAudioPublished | Remote Participant가 Room에 오디오를 공유 | |
onRemoteAudioUnpublished | Remote Participant가 Room에 공유 중인 오디오를 공유 해제 | |
onRemoteAudioStateChanged | Remote Participant의 오디오 상태 변경 | |
onRemoteAudioSubscribed | Room에 송출 중인 Remote Participant(상대방)의 원격 오디오 발화에 따라 SDK에서 자동으로 구독 | |
onRemoteAudioUnsubscribed | Room에 송출 중인 원격 사용자의 원격 오디오 수신을 SDK에서 자동으로 종료 | |
onRemoteVideoPublished | Room에 송출 중인 Remote Participant의 비디오 게시 | |
onRemoteVideoStateChanged | Room에 송출 중인 Remote Participant의 원격 비디오 상태(isEnabled )가 변경 |
|
onRemoteVideoUnpublished | Room에 송출 중인 Remote Participant의 원격 비디오의 게시가 종료 | |
onUserMessage | 해당 Room의 다른 참여자가 보낸 메시지를 받음 |
Participant
표Participant 클래스 전체 목록클래스 | 구분 | 항목 | 설명 |
---|---|---|---|
Participant | Property | id | 참여자의 아이디 |
audios: Map | 참여자가 송출하는 AudioContent의 맵(map) | ||
videos: Map | 참여자가 송출하는 VideoContent의 맵(map) | ||
hasAudio | 참여자의 오디오 송출 여부 | ||
hasVideo | 해당 참여자의 영상 송출 여부 | ||
Interface: LocalParticipant |
audios | 송출하는 LocalAudio의 맵(map) | |
videos | 송출하는 LocalVideo의 맵(map) | ||
Interface: RemoteParticipant |
audios | 송출하는 LocalVideo의 맵(map) | |
videos | Remote Participant가 송출하는 RemoteVideo의 맵(map) | ||
subscribedVideos | 리시버에 할당된 해당 참여자의 영상 | ||
unsubscribedVideos | 리시버에 할당되지 않은 해당 참여자의 영상 |
Video/Audio
표Video/Audio 관련 전체 목록대분류 | 구분 | 항목 | 설명 |
---|---|---|---|
LocalVideo | Property | id | 송출된 미디어의 스트림 ID |
owner | 스트림 소유자의 ID | ||
extraValue | 미디어 특성으로 활용될 부가 정보 | ||
isEnabled | 해당 미디어의 처리 제어 | ||
Method | attach() | 해당 비디오 프레임 수신을 설정 | |
detach() | 비디오 프레임 수신을 중단 | ||
LocalAudio | Property | id | 송출된 미디어의 스트림 ID |
owner | 스트림 소유자의 ID | ||
extraValue | 미디어 특성으로 활용될 부가 정보 | ||
isEnabled | 해당 오디오의 처리 제어 | ||
isAlwaysOn | 내 오디오를 다른 참여자들이 항상 수신하게 할지 설정 | ||
RemoteVideo | Property | id | 송출된 미디어의 스트림 ID |
owner | 스트림 소유자의 ID | ||
extraValue | 미디어 특성으로 활용될 부가 정보 | ||
isEnabled | 해당 비디오의 활성 상태 설정 | ||
demandedProfile | 다중 트랙 영상에서 원하는 화질의 값 | ||
isPaused | Remote Participant의 비디오 상태를 설정 | ||
Method | attach() | 해당 비디오 프레임 수신을 설정 | |
detach() | 비디오 프레임 수신을 중단 | ||
RemoteAudio | Property | id | 송출된 미디어의 스트림 ID |
owner | 스트림 소유자의 ID | ||
extraValue | 미디어 특성으로 활용될 부가 정보 | ||
isEnabled | 해당 오디오의 활성 상태 설정 | ||
isAlwaysOn | 참여자의 발화 레벨에 상관 없이, 해당 오디오를 항상 들을 수 있도록 설정 | ||
isMuted | 무음 기능 사용 여부 설정 |
Misc
표Misc 관련 전체 목록대분류 | 구분 | 항목 | 설명 |
---|---|---|---|
AudioHelper | Property | isFocusAcquired | SDK에서 Audio를 관리하기 위해 acquireFocus() 메서드로 요청이 되었는지 상태를 확인 |
availableDevices | 현재 유효한 오디오 장치 목록 | ||
selectedDevice | 현재 선택된 오디오 장치 | ||
Method | acquireFocus() | AudioHelper 클래스에 오디오 포커스를 요청 | |
releaseFocus() | 앱에서 SDK의 상 시나리오가 종료 시, 오디오 포커스 요청을 취소 | ||
prefer() | 해당 오디오 디바이스에 가장 높은 우선권을 부여 | ||
avoid() | 해당 오디오 디바이스에 가장 낮은 우선권을 부여 | ||
resetPreferences() | 오디오 장치 우선권을 변경한 경우, SDK 기본 설정대로 설정을 초기화 | ||
VideoCapturerFactory. CreateScreenCapture |
화면 공유 요청을 Activity Result API로 처리하기 용이하도록 제공된 ActivityResultContract | ||
VideoCapturerConfig | Property | default | 로컬 카메라 캡처에 사용되는 기본 해상도 |
maxScreenSize | 화면 넓은 면의 최대 크기 값보다 더 큰 화면은 종횡비를 유지하면서 다운스케일 | ||
VideoRenderer | Property | default | 로컬 카메라 캡처에 사용되는 기본 해상도 |
Event | onFrameInfoListener | VideoFrame 관련 정보(FPS, 크기, 회전)를 제공받을 callback | |
Method | bind() | 영상 프레임을 받아볼 VideoContent를 VideoRenderer 클래스에 바인드 | |
unbind() | 해당 VideoRenderer 클래스에서 수신 중인 영상 프레임의 바인드를 해제하여 수신 취소 | ||
setRenderingChecker() | 영상 프레임이 렌더링되는 상태를 조회 |