Kakao i Connect Live::Kakao i Connect Live 2.0::API 레퍼런스::Android::Video/Audio

페이지 이동경로

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 리모트 참여자의 비디오 상태를 설정
Method attach() 해당 비디오 프레임 수신을 설정
detach() 비디오 프레임 수신을 중단
RemoteAudio Property id 송출된 미디어의 스트림 ID
owner 스트림 소유자의 ID
extraValue 미디어 특성으로 활용될 부가 정보
isEnabled 해당 오디오의 활성 상태 설정
isAlwaysOn 참여자의 발화 레벨에 상관 없이, 해당 오디오를 항상 들을 수 있도록 설정
isMuted 무음 기능 사용 여부 설정

안내
Content는 스트림으로 표현되는 미디어를 나타내는 객체로, 콘텐츠 송출 주체와 미디어 유형에 따라 클래스가 구분됩니다.

  • LocalVideo = LocalContent + VideoContent
  • LocalAudio = LocalContent + AudioContent
  • RemoteVideo = RemoteContent + VideoContent
  • RemoteAudio = RemoteContent + AudioContent

LocalVideo

LocalVideo 클래스는 송출 주체는 LocalContent, 미디어 타입은 VideoContent인 클래스입니다.
LocalVideo를 포함한 LocalMedia를 Room에 공유 시, Remote Participant(리모트 참여자)가 나의 Local Particioant(로컬 참여자)의 영상을 볼 수 있습니다. LocalVideo 클래스는 Property와 Method로 구성됩니다.

Property

LocalVideo 프로퍼티 목록
파라미터 타입 필수 여부 설명
id Integer 필수 송출된 미디어의 스트림 ID
null: 미송출
0: 송출 준비 중
owner String 필수 스트림 소유자의 ID
null: 미송출
extraValue(mutable property) String 필수 미디어 특성으로 활용될 부가 정보
- 화면 공유의 경우 share로 설정됨
- publish() 메서드 호출 후에는 수정 불가
isEnabled(mutable property) Boolean 필수 해당 미디어의 처리 제어
true(기본값): 해당 미디어를 활성화
false: 해당 미디어를 비활성화

Method

LocalVideo 클래스의 메서드는 다음과 같습니다.

attach()

Android SDK에서는 자체적으로 attach() 메서드를 호출합니다. 따라서 SDK 자체적으로 내장된 VideoRenderer 대신 별도의 Renderer View를 사용하고자 할 경우에만 비디오에 sink(VideoSink)로 Renderer View를 추가하여, 해당 비디오 프레임 렌더링을 설정하시기 바랍니다. Android SDK에서는 VideoRenderer에 bind만 하면 onVisibilityAggregated에 따라 수신/비수신 처리를 할 수 있습니다.

안내
SDK 자체적으로 내장된 VideoRenderer 대신 별도의 Renderer View를 사용하고자 할 경우에만 attach() 메서드를 사용하시기 바랍니다.

코드예제attach() Syntax

video.attach(sink = VideoRenderer)

attach() Parameters
파라미터 타입 필수 여부 설명
sink VideoSink 필수 뷰에 바인딩할 렌더러 뷰(Renderer View)
- VideoRenderer 사용 필요

detach()

Android SDK에서는 자체적으로 detach() 메서드를 호출합니다. 따라서 SDK 자체적으로 내장된 VideoRenderer 대신 별도의 Renderer View를 사용하기 위해 attach() 메서드를 호출한 경우, detach() 메서드를 호출하여 해당 Renderer View를 제거하여 비디오 프레임 렌더링을 중단해야 합니다. Android SDK에서는 VideoRenderer에 바인드만 하면 onVisibilityAggregated에 따라 수신/비수신 처리를 수행합니다.

코드예제detach() Syntax

video.detach(sink = VideoRenderer)

detach() Parameters
파라미터 타입 필수 여부 설명
sink VideoSink 필수 뷰에서 unbinding할 렌더러 뷰(Renderer View)
- 기존에 할당된 VideoRenderer 넣어 수신 중단 필요

LocalAudio

LocalAudio 클래스는 LocalMedia 클래스의 구성 클래스 중 하나로 송출 주체는 Local, 미디어 타입은 Audio인 클래스입니다. LocalAudio를 포함한 LocalMedia를 Room에 공유 시 다른 참여자가 나의 음성을 들을 수 있습니다. LocalAudio 클래스는 Property로 구성됩니다.

Property

LocalAudio Property
프로퍼티 타입 설명
id Integer 송출된 미디어의 스트림 ID
null: 미송출
0: 송출 준비 중
owner String 스트림 소유자의 ID
null: 미송출
extraValue String 미디어 특성으로 활용될 부가 정보
- publish() 메서드 호출 후에는 수정 불가
isEnabled Boolean 해당 오디오의 처리 제어
true(기본값): 해당 미디어 활성화
false: 해당 미디어 비활성화
isAlwaysOn Boolean 내 오디오를 다른 참여자들이 항상 수신하도록 설정
true: 항상 수신
false(기본값): 발화했을 때만 수신할 수 있도록 설정

RemoteVideo

RemoteVideo 클래스는 RemoteContent 클래스의 구성 클래스 중 하나로 송출 주체는 Remote, 미디어 타입은 Video인 클래스입니다.
RemoteVideo를 VideoRenderer 클래스에 바인드 시 해당 참여자의 영상을 볼 수 있습니다. RemoteVideo 클래스는 Property와 Method로 구성됩니다.

Property

RemoteVideo Property
프로퍼티 타입 설명
id Integer 송출된 미디어의 스트림 ID
null: 미수신
0: 수신 준비 중
owner String 스트림 소유자의 ID
null: 미수신
extraValue String 미디어 특성으로 활용될 부가 정보
- 해당 비디오가 화면 공유라면, share로 설정됨
- publish() 메서드 호출 후에는 수정 불가
isEnabled Boolean 해당 비디오의 활성 상태 설정
true(기본값): 해당 미디어를 활성화
false: 해당 미디어를 비활성화
demandedProfile ProfileType 해당 video의 수신 해상도를 변경
- 렌더러의 사이즈에 따라 변경(기본값)
- remoteVideo.demandedProfile = ProfileType.HIGH
isPaused Boolean 리모트 참여자의 비디오 상태를 설정
true: 다른 참여자가 영상 송출을 일시 중지함
false(기본값): 정상 재생 중

Method

attach()

Android SDK에서는 자체적으로 attach() 메서드를 호출합니다. 따라서 SDK 자체적으로 내장된 VideoRenderer 대신 별도의 Renderer View를 사용하고자 할 경우에만 비디오에 sink(VideoSink)로 Renderer View를 추가하여, 해당 비디오 프레임 렌더링을 설정하시기 바랍니다. Android SDK에서는 VideoRenderer에 bind만 하면 onVisibilityAggregated에 따라 수신/비수신 처리를 할 수 있습니다.

코드예제attach() Syntax

video.attach(sink = VideoRenderer)

attach() Parameters
파라미터 타입 필수 여부 설명
sink VideoSink 필수 뷰에 바인딩할 렌더러 뷰(Renderer View)
- VideoRenderer 사용 필요

detach()

Android SDK에서는 자체적으로 detach() 메서드를 호출합니다. 따라서 SDK 자체적으로 내장된 VideoRenderer 대신 별도의 Renderer View를 사용하기 위해 attach() 메서드를 호출한 경우, detach() 메서드를 호출하여 해당 Renderer View를 제거하여 비디오 프레임 렌더링을 중단해야 합니다. Android SDK에서는 VideoRenderer에 바인드만 하면 onVisibilityAggregated에 따라 수신/비수신 처리를 수행합니다.

코드예제detach() Syntax

video.detach(sink = VideoRenderer)

detach() Parameters
파라미터 타입 필수 여부 설명
sink VideoSink 필수 뷰에 바인딩을 취소할 렌더러 뷰(Renderer View)
- 기존에 할당된 VideoRenderer 사용 필요

RemoteAudio

RemoteAudio 클래스는 송출 주체는 RemoteContent, 미디어 타입은 AudioContent입니다. RemoteAudio 클래스를 활용하면, 별다른 코딩 없이 스트리밍 서비스에서 발화 중인 다른 참여자의 오디오를 들을 수 있습니다. Remote Audio 클래스는 Property로 구성됩니다.

Property

RemoteAudio Property
프로퍼티 타입 설명
id Integer 송출된 미디어의 스트림 ID
null: 미수신
0: 수신 준비 중
owner String 스트림 소유자의 ID
null: 미수신
extraValue String 미디어 특성으로 활용될 부가 정보
- publish 후 수정 불가
isEnabled Boolean 해당 오디오의 활성 상태 설정
true(기본값): 해당 미디어를 활성화
false: 해당 미디어를 비활성화
isAlwaysOn Boolean 참여자의 발화 레벨에 상관 없이, 해당 오디오를 항상 들을 수 있도록 설정(AlwaysOn 기능)
true: 발화 레벨에 상관 없이 해당 오디오를 항상 청취
false(기본값): 발화 레벨 기준으로 오디오를 청취
isMuted Boolean 무음 기능 사용 여부 설정
true: 오디오의 소리를 무음으로 설정
false(기본값): 오디오의 소리가 들리도록 설정
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

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