본문으로 건너뛰기
Version: 5.5

서브그룹 흐름

이 페이지에서는 그룹 통화(컨퍼런스)에서 서브그룹을 사용하는 흐름을 설명합니다.

참여자가 서브그룹의 멤버가 되려면 서브그룹에 가입(subscription) 요청해야 합니다. 가입한 서브그룹에서 나갈 때는 서브그룹으로 더는 미디어를 보내지 않도록 한 다음 탈퇴를 요청해야 합니다.

서브그룹에 가입한 멤버는 자신의 오디오와 비디오의 목적지를 제어할 수 있습니다. 아무것도 하지 않으면 오디오와 비디오 흐름은 바뀌지 않습니다.

가입

서브그룹에 가입하려면 SubscribeSubgroup()를 호출해야 합니다.

아래 그림은 서브그룹 가입 흐름도입니다. Client 01과 Client 02라는 두 참여자가 있다고 가정합니다. 둘은 기본 방(main room)에서 통신 중입니다.

서브그룹 가입 시퀀스 다이어그램

위 절차에서 두 참여자는 서브그룹 K에 가입한 후에도 기본 방에서 서로 소통할 수 있습니다. 단, 이때 기본 방에 있는 다른 참여자에게 미디어가 노출됩니다.

아래 표는 ESubGroupPeerUpdateType 유형별로 발생할 수 있는 이벤트를 보여줍니다.

PUBLICPRIVATENONE
서브그룹 멤버 (스스로 가입했거나 추가한 멤버)OnPeerListUpdate
OnPublicSubgroupUpdated
OnPeerListUpdate없음
멤버 아님 (가입하지 않은 참여자)OnPublicSubgroupUpdated없음없음

오디오

서브그룹에 가입한 멤버는 자동으로 그 서브그룹의 오디오 스트림을 받습니다. 단, 자신의 오디오 스트림을 서브그룹으로 바꿔 전송하려면 ChangeMyAudioDestination()을 호출해야 합니다.

아래 다이어그램은 ChangeMyAudioDestination()을 호출할 때 오디오의 흐름 및 수신하는 오디오 정보가 바뀌는 것을 보여줍니다. 사용자가 기본 방과 서브그룹에서 수신하는 오디오 정보는 상자 형태로 다이어그램에 나타납니다.

그룹 통화에 세 참여자 Client 01, Client 02, Client 03이 있고, Client 01과 Client 02는 서브그룹 K의 멤버입니다. Client 01과 Client 02가 서브그룹 K에 가입했지만, 아무도 서브그룹 K에 오디오를 보내지 않으므로 현재 서브그룹에서 받을 수 있는 오디오는 없습니다.

서브그룹 오디오 목적지 변경 시퀀스 다이어그램

자신의 오디오 목적지와 기본 방 및 서브그룹에서 수신하는 오디오는 다음과 같습니다.

  1. Client 01이 ChangeMyAudioDestination()을 호출
    • Client 01
      • 오디오 목적지: 기본 방 → 서브그룹 K
      • 기본 방에서 수신한 오디오: Client 02 + Client 03
      • 서브그룹 K에서 수신한 오디오: 없음
    • Client 02
      • 오디오 목적지: 기본 방
      • 기본 방에서 수신한 오디오: Client 03
      • 서브그룹 K에서 수신한 오디오: Client 01
    • Client 03
      • 오디오 목적지: 기본 방
      • 기본 방에서 수신한 오디오: Client 02
  2. Client 02가 ChangeMyAudioDestination()을 호출
    • Client 01
      • 오디오 목적지: 서브그룹 K
      • 기본 방에서 수신한 오디오: Client 03
      • 서브그룹 K에서 수신한 오디오: Client 02
    • Client 02
      • 오디오 목적지: 기본 방 → 서브그룹 K
      • 기본 방에서 수신한 오디오: Client 03
      • 서브그룹 K에서 수신한 오디오: Client 01
    • Client 03
      • 오디오 목적지: 기본 방
      • 기본 방에서 수신한 오디오: 없음

비디오

서브그룹에 가입한 후에는 PeerControl::StartVideo()를 이용해 어느 서브그룹의 비디오를 수신할지 제어할 수 있습니다.

Note

PeerControl 사용 방법에 대한 자세한 내용은 그룹 영상 통화 예제 코드를 참고하세요.

StartVideo() 사용법에 관해서는 그룹 통화 흐름 - 피어 비디어 요청을 참고하세요.

자신의 비디오를 보낼 서브그룹을 바꾸려면 ChangeMyVideoDestination()을 호출하세요.

서브그룹 비디오 목적지 변경 시퀀스 다이어그램

화면 공유

프레젠테이션 - 화면 공유에서 프레젠테이션을 시작하는 방법을 볼 수 있습니다. 서브그룹에서 프레젠테이션할 때도 방법은 동일합니다.

Note
  • 서브그룹 내 화면 공유는 PlanetKit 4.1부터 지원합니다.
  • 피어의 화면 공유 뷰에서 화면 공유 비디오를 제어하기 위한 PeerControl의 메서드를 사용할 수 있습니다. 화면 공유 비디오 제어를 위해 PeerControl을 사용하는 방법에 대한 자세한 내용은 그룹 통화 화면 공유 예제 코드를 참조하세요.

가입 절차를 완료하면, 발표자는 적절한 서브그룹 이름을 지정해 StartMyScreenShare()를 호출합니다. 참여자는 PeerControl::StartScreenShare()를 호출하여 발표자의 화면 공유 비디오를 받을 수 있습니다. ChangeMyScreenShareDestination() 메서드는 공유 화면을 보낼 대상 서브그룹을 바꿀 수 있게 해 줍니다. 아래 다이어그램을 확인하세요.

서브그룹 화면 공유 목적지 변경 시퀀스 다이어그램
Tip

오디오와 비디오 같은 다른 미디어처럼, 화면 공유 역시 서브그룹에서 탈퇴하기 전에 중지해야 합니다.

탈퇴

서브그룹에서 탈퇴하려면 UnsubscribeSubgroup()를 호출합니다. 단, 그전에 서브그룹으로 보내는 모든 미디어를 전송 중지해야 합니다.

Client 01이 서브그룹 K에서 탈퇴하는 과정을 살펴봅시다. 여기서는 프레젠테이션을 진행하지 않는다고 가정했지만, 진행하더라도 오디오나 비디오를 처리할 때와 같은 방식으로 화면 공유를 처리하면 됩니다.

서브그룹 탈퇴 시퀀스 다이어그램

서브그룹에서 탈퇴하기 위해, 애플리케이션은 미디어 전송 목적지를 변경하고 UnsubscribeSubgroup()를 호출하는 작업을 진행합니다.

  1. Client 01이 미디어 전송 목적지 변경
    • 오디오를 기본 방으로 보내기 위해 ChangeMyAudioDestinationToMainRoom() 호출
    • 비디오를 기본 방으로 보내기 위해 ChangeMyVideoDestinationToMainRoom() 호출
  2. Client 01이 UnsubscribeSubgroup() 호출해서 탈퇴

관련 API

서브그룹과 관련된 API는 다음과 같습니다.

Enum

메서드

이벤트

관련 문서

서브그룹 기본 개념에서 더 많은 정보를 볼 수 있습니다.