음성 통화 중 영상 통화 활성화
음성 통화 중에 영상 통화로 전환하거나 영상 통화 중에 음성 통화로 다시 전환할 수 있습니다. 이를 각각 영상 통화를 활성화하거나 비활성화한다고 표현합니다.
영상 통화 활성화를 요청하는 절차는 통화 유형에 따라 다를 수 있습니다. 이 페이지에서는 통화 유형에 따라 영상 통화를 활성화하거나 비활성화하는 방법을 설명합니다.
지원 통화 유형 | 최소 SDK 버전 |
---|---|
1대1 통화, 그룹 통화(컨퍼런스) | PlanetKit 3.0 |
1대1 통화
1대1 통화에서 영상 통화를 활성화 또는 비활성화하려면 PlanetKitCall
의 다음 메서드를 사용하세요.
메서드 | 설명 | 관련 이벤트 콜백 |
---|---|---|
EnableVideo() | 영상 통화 활성화를 요청합니다. | OnVideoEnabledByPeerAndMyVideoPaused |
DisableVideo() | 영상 통화 비활성화를 요청합니다. 영상 통화를 비활성화하는 이유를 제공할 수 있습니다. | OnVideoDisabledByPeer |
요청자의 초기 비디오 상태
EnableVideo()
의 eInitialMyVideoState
파라미터로 요청자의 초기 비디오 상태를 설정할 수 있습니다. 이 파라미터의 값은 EInitialMyVideoState
열거형에 정의된 다음 값 중 하나가 될 수 있습니다.
PLNK_INITIAL_MY_VIDEO_STATE_RESUME
: 카메라가 켜지고 카메라에서 캡처한 비디오가 전송됩니다.PLNK_INITIAL_MY_VIDEO_STATE_PAUSE
: 카메라가 꺼진 상태로 유지되고 비디오가 전송되지 않습니다.
eInitialMyVideoState
파라미터의 기본값은PLNK_INITIAL_MY_VIDEO_STATE_RESUME
입니다.- 이 파라미터를
PLNK_INITIAL_MY_VIDEO_STATE_PAUSE
로 설정하면 요청자의 비디오가 전송되지 않습니다. 요청자의 비디오를 캡처하고 전송하려면 이후에PlanetKitCall::ResumeMyVideo()
를 호출해야 합니다.
영상 통화 활성화
영상 통화 요청자가 EnableVideo()
를 호출하면 요청 수신자의 비디오가 일시 중지된 상태로 영상 통화가 활성화됩니다. 요청 수신자가 비디오를 보내려면 ResumeMyVideo()
를 호출해야 합니다.
PlanetKit 6.0부터 1대1 통화에서 응답 유형(비디오 일시 중지 또는 비디오 전송)을 설정하는 기능은 더 이상 지원되지 않습니다. 이제 영상 통화 활성화 시 요청 수신자의 비디오는 일시 중지 상태가 됩니다.
관련 이벤트인 OnPeerVideoPaused
과 OnPeerVideoResumed
에 대한 자세한 내용은 비디오 일시 중지 이벤트를 참고하세요.
영상 통화 비활성화
영상 통화 도중에 비디오 스트리밍을 중지하고 싶으면, disableReason
값과 함께 DisableVideo()
를 호출하세요.
거절하는 흐름 예시
EnableVideo()
요청의 수신자가 영상 통화에 참여하고 싶지 않으면 요청을 거절할 수 있습니다. 이때 통화 절차는 아래와 같아야 합니다.
그룹 통화
그룹 통화에서 영상 통화를 활성화하거나 비활성화하려면 PlanetKitConference
의 다음 메서드를 사용하세요.
메서드 | 설명 | 관련 이벤트 콜백 |
---|---|---|
EnableVideo() | 영상 통화 활성화를 요청합니다. | OnPeersVideoUpdated (state= PLNK_VIDEO_STATE_ENABLED ) |
DisableVideo() | 영상 통화 비활성화를 요청합니다. 참고: 1대1 통화와 달리 그룹 통화에서는 disableReason 이 필요하지 않습니다. | OnPeersVideoUpdated (state= PLNK_VIDEO_STATE_DISABLED ) |
OnPeersVideoUpdated
에서는 PLNK_VIDEO_STATE_ENABLED
, PLNK_VIDEO_STATE_DISABLED
, PLNK_VIDEO_STATE_PAUSED
세 가지 상태를 전달합니다.
상태가 PLNK_VIDEO_STATE_PAUSED
인 경우 pauseReason
을 참조하여 필요한 작업을 수행해야 합니다. 자세한 내용은 비디오 일시 중지 이벤트를 참고하세요.
요청자의 초기 비디오 상태
EnableVideo()
의 eInitialMyVideoState
파라미터로 요청자의 초기 비디오 상태를 설정할 수 있습니다. 이 파라미터의 값은 EInitialMyVideoState
열거형에 정의된 다음 값 중 하나가 될 수 있습니다.
PLNK_INITIAL_MY_VIDEO_STATE_RESUME
: 카메라가 켜지고 카메라에서 캡처한 비디오가 전송됩니다.PLNK_INITIAL_MY_VIDEO_STATE_PAUSE
: 카메라가 꺼진 상태로 유지되고 비디오가 전송되지 않습니다.
eInitialMyVideoState
파라미터의 기본값은PLNK_INITIAL_MY_VIDEO_STATE_RESUME
입니다.- 이 파라미터를
PLNK_INITIAL_MY_VIDEO_STATE_PAUSE
로 설정하면 요청자의 비디오가 전송되지 않습니다. 요청자의 비디오를 캡처하고 전송하려면 이후에PlanetKitConference::ResumeMyVideo()
를 호출해야 합니다.
영상 통화 활성화
영상 통화 요청자가 EnableVideo()
를 호출하면 다른 참여자는 각자 PeerControl::StartVideo()
를 호출해 그 스트림을 받을지 말지 결정해야 합니다.
PeerControl
사용 방법에 대한 자세한 내용은 그룹 영상 통화 예제 코드를 참고하세요.
영상 통화 비활성화
그룹 영상 통화 도중에 비디오 스트림을 중지하려면 DisableVideo()
를 호출합니다.
인터페이스 변경
그룹 통화에서 영상 통화 활성화와 관련된 이벤트의 인터페이스에 다음과 같은 변경이 있었습니다.
SDK 버전 | API |
---|---|
PlanetKit 4.3 이상 | OnPeersVideoUpdated |
PlanetKit 4.0~4.2 | evtConfVideoUpdated |
PlanetKit 4.0 미만 | evtConfUpdated |
관련 API
영상 통화 활성화 및 비활성화와 관련된 API는 다음과 같습니다.
공통
1대1 통화
메서드
-
MakeCallParam::SetResponseOnVideoEnable()
-
VerifyCallParam::SetResponseOnVideoEnable()
-
PlanetKitCall::EnableVideo()
-
PlanetKitCall::DisableVideo()
-
PlanetKitCall::ResumeMyVideo()
이벤트
그룹 통화
메서드
-
PlanetKitConference::EnableVideo()
-
PlanetKitConference::DisableVideo()
-
PlanetKitConference::ResumeMyVideo()