Kakao i Connect Live::Kakao i Connect Live 2.0::API 레퍼런스::iOS

페이지 이동경로

iOS API

iOS 버전의 카카오 i 커넥트 라이브 SDK 2.0는 SDK 주요 메서드와 클래스별로 API를 구분하여 제공합니다. 각 API에 대한 자세한 내용은 API 레퍼런스 문서를 참고하시기 바랍니다.

SDK 주요 메서드

iOS 버전의 카카오 i 커넥트 라이브 SDK 2.0에서 제공하는 주요 메서드는 다음과 같습니다.

SDK 주요 메서드 목록
구분 메서드 설명
주요 메서드 signIn()_커넥트 라이브 내부 인증 SDK의 내부 인증 방식으로 인증을 수행하며, 인증 처리 후 결과는 Callback 형태로 전달
signIn()_서비스 자체 인증 서비스 자체의 인증 방식으로 인증을 수행하며, 인증 처리 후 결과는 Callback 형태로 전달
signOut() Connect Live 인증을 해제하고 인증 관련 리소스 정리
createRoom() Room(채팅방) 클래스 생성
createLocalMedia() LocalMedia 클래스 생성
createScreenShare() 화면공유 객체 생성
setAudioSessionConfiguration() 앱의 Audio Session 설정
setAudioSessionWithCurrentCategory() 오디오 세션을 현재 설정된 카테고리로 재설정

Config

나 자신의 미디어인 Local Media(로컬 미디어) 설정과 오디오/비디오 리시버(Receiver)의 개수를 설정합니다. 리시버의 개수는 동시 구독이 가능한 스트림 수를 의미하며, 실제 필요한 수만큼만 생성하는 것을 권장합니다.
오디오 리시버 수는 정해져 있으며, 비디오 리시버의 수는 각 서비스의 상황에 맞춰 설정할 수 있습니다. 구독 요청 시 최대 리시버 수만큼 자동으로 리시버가 증가하며, 최대 리시버 이상의 구독을 요청할 경우 오류를 리턴합니다. 이 경우 기존 다른 스트림의 구독을 해제한 후 구독을 수행해야 리시버를 할당받을 수 있습니다.

Config 전체 목록
구분 항목 설명
Config mediaOptions Local Media(로컬 미디어) 생성을 위한 옵션
videoReceiverInitialCount 초기 생성할 리시버의 개수를 설정
videoReceiverMaximumCount 최대 영상 리시버의 개수

Local Medio Options

비디오 소스 선택, 오디오 타입 선택 등 로컬 미디어의 옵션을 설정할 수 있습니다.

Local Media Options 전체 목록
구분 항목 설명
LocalMediaOptions source 로컬 미디어의 비디오 소스를 선택
hasAudio 로컬 미디어가 오디오 스트림의 포함 여부를 설정
hasVideo 로컬 미디어가 비디오 스트림의 포함 여부를 설정
audio 로컬 미디어 시작 시 오디오의 활성화 여부를 선택
video 로컬 미디어 시작 시 비디오의 활성화 여부를 선택
videoExtraValue 비디오 스트림 생성 시 비디오 스트림의 extraValue에 할당할 문자열
audioExtraValue 오디오 스트림 생성 시 오디오 스트림의 extraValue에 할당할 문자열
rotationType 카메라가 회전하는 방식을 선택
position 비디오 스트리밍 시 사용할 카메라 위치를 선택
isMirror 카메라 영상의 좌우 반전 여부를 설정
audioType 앱에서 사용하는 오디오 타입을 선택
autoGain 앱에서 마이크 입력의 자동 레벨 조정 기능의 사용 여부를 선택

Room

Room 클래스는 카카오 i 커넥트 라이브 SDK의 주요 클래스 중 하나입니다. 카카오 i 커넥트 라이브에서 Room은 서비스에 따라 회의실, 채팅방 등 스트리밍 서비스를 사용하는 공간을 의미합니다. Room 클래스는 Property, Method, RoomDelegate로 구성됩니다.

Room 클래스 전체 목록
클래스 구분 항목 설명
Room Property status Room의 연결 상태를 반환
localParticipant 로컬 미디어를 송출하는 로컬 참여자 객체 정보
remoteParticipants 리모트 미디어를 송출하는 로컬 리모트 참여자 객체들의 Dictionary
Method connect() 특정 ID의 Room에 연결하고 스트림의 송수신을 위한 모든 절차 시작
disconnect() Room과의 연결 종료
publish() 나 자신의 미디어인 로컬 미디어(Local Media)를 Room에 게시(송출)
unpublish() 나 자신의 미디어인 로컬 미디어(Local Media)의 Room에 게시(송출) 중단
subscribe() Remote Participant가 게시(송출)한 비디오 구독
unsubscribe() Remote Participant가 게시(송출)한 비디오 구독을 해제
getVideoOccupants() 비디오를 구독 중인 참여자 ID 데이터를 가져옴
getAudioOccupants() 오디오를 구독 중인 참여자 ID 데이터를 가져옴
setMuted() 수신 중인 모든 오디오를 무음으로 설정
sendUserMessage() Room의 다른 참여자에게 메시지 전달
requestScreenShare() 화면 공유(Screen Share)를 요청
stopScreenShare() 화면 공유를 중단
getAudioLevels() 현재 발화 중인 참여자의 평균 오디오 레벨을 가져옴
getLocalStasReport() 내가 생성한 로컬 미디어의 송출 스트림에 대한 WebRTC 통계 정보를 가져옴
getRemoteStasReport() Remote Participant가 생성한 원격 미디어(Remote Media)의 수신 스트림에 대한 WebRTC 통계 정보를 가져옴

RoomDelegate

RoomDelegate는 Room에서 발생하는 이벤트를 처리하기 위한 Callback 이벤트입니다.

RoomDelegate 이벤트 전체 목록
대분류 구분 이벤트 설명
RoomDelegate Event onConnecting Room에 연결이 진행 중인 단계에서 발생
onConnected 참여자가 Room에 연결이 완료되었을 때 발생
onDisconnected Room에서 연결이 해제되면 발생
onError 에러 발생 시 발생
onParticipantEntered Room에 내가 아닌 Remote Participant가 입장을 완료했을 때 발생
onParticipantLeft Remote Participant가 Room에서 퇴장했을 때 발생
onLocalMediaPublished 내가 생성한 로컬 미디어가 게시(송출)되었을 때 발생
onLocalMediaUnpublished Room에서 로컬 미디어의 게시(송출)가 해제되었을 때 발생
onRemoteVideoPublished Remote Participant가 비디오를 게시(송출)했을 때 발생
onRemoteVideoUnpublished Remote Participant가 비디오 게시(송출)를 중단했을 때 발생
onRemoteAudioPublished Remote Participant가 오디오를 게시(송출)했을 때 발생
onRemoteAudioUnpublished Remote Participant가 오디오 게시(송출)를 중단했을 때 발생
onRemoteAudioSubscribed 다른 참여자의 오디오를 구독했을 때 발생
onRemoteAudioUnsubscribed Remote Participant가 오디오 구독을 중단했을 때 발생
onRemoteVideoStateChanged 다른 참여자의 비디오 상태가 변경 시 발생
onRemoteAudioStateChanged 다른 참여자의 오디오 상태가 변경 시 발생
onUserMessage 참여자가 메시지를 전송했을 때 발생

LocalParticipant

LocalParticipant 클래스는 카카오 i 커넥트 라이브 SDK의 주요 클래스 중 하나로, 로컬 참여자(나 자신)를 의미합니다. LocalParticipant 클래스는 Property로만 구성됩니다.

LocalParticipant 프로퍼티 목록
클래스 구분 항목 설명
LocalParticipant Property id Local Participant(로컬 참여자)의 ID
audios Local Participant(로컬 참여자)의 오디오 스트림 배열
videos Local Participant(로컬 참여자)의 비디오 스트림 배열

RemoteParticipant

RemoteParticipant 클래스는 카카오 i 커넥트 라이브 SDK의 주요 클래스 중 하나로, Remote Participant는 다른 참여자를 의미합니다. RemoteParticipant 클래스는 Property만으로 구성됩니다.

RemoteParticipant 프로퍼티 목록
클래스 구분 항목 설명
RemoteParticipant Property id Remote Participant(리모트 참여자)의 ID
audios Remote Participant(리모트 참여자)의 오디오 스트림 배열
videos Remote Participant(리모트 참여자)의 비디오 스트림 배열

LocalMedia

LocalMedia 클래스는 Local Participant(로컬 참여자)가 생성한 오디오와 비디오를 제어합니다. LocalMedia 클래스는 Property와 Method로 구성됩니다.

LocalMedia 전체 목록
클래스 구분 항목 설명
LocalMedia Property video 로컬 비디오의 스트림
audio 로컬 오디오의 스트림
position 현재 선택된 디바이스의 카메라 위치
isMirror 카메라 좌우 반전 여부
audioLevel 디바이스의 마이크로 입력되는 로컬 오디오 레벨(범위: 0~100)
Method start() 로컬 미디어의 게시(송출) 시작
stop() 로컬 미디어의 게시(송출) 중단
switchCamera() 디바이스의 카메라 위치 변경

LocalVideo

Local Participant(로컬 참여자)가 생성한 비디오를 Room에 송출하기 위한 로컬 비디오 스트림 클래스입니다.

LocalVideo 전체 목록
클래스 구분 항목 설명
LocalVideo Property id 로컬 비디오 ID
owner 로컬 비디오의 소유자(참여자) ID
active 비디오 스트림의 활성화 여부를 변경하거나 현재 활성화 여부를 가져옴
extraValue 비디오 스트림 식별을 위해 임의 설정 가능한 레이블 정보
viewId 비디오 스트림에 연결된 렌더뷰 ID
Method attach() 비디오 스트림에 렌더뷰(Render View) 연결
detach() 비디오 스트림에 연결된 렌더뷰 해제

LocalAudio

Local Participant(로컬 참여자)가 생성한 오디오를 Room에 송출하기 위한 로컬 오디오 스트림 클래스입니다.

LocalVideo 전체 목록
클래스 구분 항목 설명
LovalAudio Property id 로컬 오디오 ID
owner 로컬 오디오의 소유자(참여자) ID
active 오디오 스트림의 활성화 여부를 변경하거나 현재 활성화 여부를 가져옴
extraValue 로컬 오디오 스트림 식별을 위해 임의 설정 가능한 레이블 정보
alwaysOn 로컬 참여자의 오디오를 항상 내보내고 싶을 때 설정 여부

RemoteVideo

RemoteVideo 클래스는 Remote Participant(리모트 참여자)가 생성한 리모트 비디오(Remote Video)를 관리합니다.

RemoteVideo 전체 목록
클래스 구분 항목 설명
RemoveVideo Property id 리모트 비디오 ID
owner 리모트 비디오 소유자(참여자) ID
active 리모트 비디오 스트림의 활성화 여부
extraValue 리모트 비디오 스트림 식별을 위한 레이블 문자열
profile 리모트 비디오 스트림의 프로파일 정보
pause 리모트 비디오 스트림 수신을 일시 중지
viewId 리모트 비디오 스트림에 연결된 렌더뷰 ID
isSubscribed 리모트 비디오 스트림의 구독 여부
Method attach() 리모트 비디오 스트림에 렌더뷰 연결
detach() 리모트 비디오 스트림에 연결된 렌더뷰 해제
setProfile() 리모트 비디오 스트림의 프로파일 변경

RemoteAudio

RemoteAudio 클래스는 Remote Participant(리모트 참여자)가 생성한 리모트 오디오(Remote Audio)를 관리합니다.

RemoteAudio 전체 목록
클래스 구분 항목 설명
RemoteAudio Property id 리모트 오디오 ID
owner 리모트 오디오 소유자(참여자) ID
active 리모트 오디오 스트림의 활성화 여부
extraValue 리모트 오디오 스트림 식별을 위한 레이블 문자열
alwaysOn 리모트 오디오 스트림의 구독 상태

AudioSessionDelegate

AudioSessionDelegate는 WebRTC의 오디오 세션에서 전달하는 이벤트입니다. 이 이벤트는 필수 구현 요소는 아니며, 다른 앱이나 전화 등으로 인한 오디오 세션 관련 이벤트가 필요할 경우 구현하는 선택 이벤트입니다.

AudioSessionDelegate 전체 목록
이벤트 항목 설명
AudioSessionDelegate didBeginInterruption 다른 앱으로 인해 오디오 인터럽트가 발생한 경우
didEndInterruption 다른 앱으로 인해 발생한 오디오 인터럽트가 종료된 경우
didChangeRoute 오디오 장치가 변경된 경우
mediaServerTerminated iOS에서 오디오를 처리하는 오디오 세션 미디어 서버가 종료된 경우
mediaServerReset iOS에서 오디오를 처리하는 오디오 세션 미디어 서버가 초기화된 경우
didChangeCanPlayOrRecord 오디오 세션 카테고리의 재생/녹화 상태가 변경된 경우
didStartPlayOrRecord 오디오 세션에서 재생/녹화가 시작된 경우
didStopPlayOrRecord 오디오 세션에서 재생/녹화가 중단된 경우
willSetActive 오디오 세션의 활성(Active) 상태가 변경된 경우
didSetActive 오디오 세션의 활성 상태가 변경된 경우
failedToSetActive 오디오 세션의 활성 상태 변경이 실패된 경우

ScreenShare

Broadcast Extension에서 카카오 i 커넥트 라이브 서비스에 연결하기 위해 사용하는 클래스입니다. ScreenShare 클래스는 메서드로만 구성됩니다.

안내
iOS 확장(Extension) 기능 동작을 위해서 Extension 설정이 필요합니다. 자세한 설명은 부록. Extension 사전 작업을 참고하시기 바랍니다.
ScreenShare 전체 목록
클래스 구분 메서드 설명
ScreenShare Method start() Room에 접속하고 송출 시작
stop() 화면공유 중단
pause() 일시적으로 화면공유 중지
resume() 화면공유 일지 중지를 해제
sendVideoframe() 캡처한 로컬 화면을 Room으로 송출하기 위해 SDK로 전달
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 documentation@kakaoenterprise.com 으로 제보해주세요.