서브그룹 예제: 통역
예제를 통해 그룹 통화(컨퍼런스)에서 통역 서비스를 제공하는 방법을 살펴봅시다.
요구사항
이 예제의 요구 사항은 다음과 같습니다.
- 통역가가 통역을 위해 그룹 통화에 참여함
- 모든 참여자가 함께 이야기할 수 있음
- 단, 통역가가 통역할 때는 일반 참여자의 볼륨을 낮춤
애플리케이션 설계
이 예제를 위한 애플리케이션 설계는 다음과 같습니다.
-
통역을 지원하는 언어별로 서브그룹을 만듭니다.
-
통역가는 통역을 위해 해당 언어의 서브그룹에 가입합니다.
- T-JP: 영->일 통역가. Jp 서브그룹에 가입
- T-EN: 일->영 통역가. En 서브그룹에 가입
-
참여자는 듣고 싶은 언어의 서브그룹을 선택합니다.
- J1, J2: 일본어 사용자. Jp 서브그룹에 가입.
- E1, E2: 영어 사용자. En 서브그룹에 가입.
-
peerUpdate 속성값은 NONE으로 설정합니다.
- 통역할 서브그룹 언어가 이미 정의되어 있습니다.
-
videoUpdate 속성값은 FALSE로 설정합니다.
- 통역 방에서 비디오를 사용하지 않습니다.
-
오디오 송수신은 반드시 아래 표처럼 설정해야 합니다.
오디오 송신 오디오 수신 통역가 언어별 서브그룹 기본 방 언어별 참여자 기본 방 언어별 서브그룹 + 기본 방
오디오 흐름
통역이 필요한 오디오의 흐름과 순서는 다음과 같습니다.
- 일본어 사용자가 일본어로 발언
- 모든 참여자(통역가 포함)가 이를 청취
- 통역가 T-EN이 영어로 통역하고, 통역된 영어 오디오가 En 서브그룹으로 전송
- 영어 사용자(E1, E2)만 영어 오디오 청취
PlanetKit API 흐름
아래와 같은 상황에서 적절한 서브그룹 API 호출 흐름 및 실제 통역 서비스를 구현할 때 서브그룹에 가입하는 방법을 살펴봅시다.
- 모든 참여자가 통역 방에 입장
- 영어 사용자 E1, E2 및 영어 통역가 T-EN은 준비 완료
참여자 J2가 통역 서비스를 받는 법은 다음과 같습니다.
- J2는 일본어를 사용하므로 Jp 서브그룹에 가입합니다.
- 아직 Jp 서브그룹에 오디오를 전송하는 사람이 없으므로, J2에게 전달되는 것이 없습니다.
- J2는 "Jp"를 인자로
setTagMyAudioOfMainRoom()
을 호출해, 기본 방으로 전송하는 오디오 스트림을 태그합니다.- 이는 Jp 서브그룹에 자신의 오디오를 보내도록 변경하지 않으면서도 오디오 스트림이 Jp 서브그룹에 속하게 됨을 의미합니다.
- 일본어 통역가 T-JP는 "Jp"를 인자로
changeMyAudioDestination()
을 호출해 자신의 오디오 스트림을 Jp 서브그룹으로 보내도록 변경합니다.- T-JP가 Jp 서브그룹으로 오디오를 보냅니다.
- T-JP의 오디오는 J2를 포함한 모든 Jp 서브그룹 멤버에게 전달됩니다.
- J2는 T-JP가 통역할 때 일본어를 듣기 위해 "Jp"를 인자로
setPeersAudioAutoVolumeControl()
을 호출합니다.- E1과 E2의 오디오는 기본 방으로 전달됩니다.
- E1과 E2는 다른 서브그룹에 있지만 T-JP는 그들의 오디오를 듣습니다.
- J2도 E1과 E2의 오디오를 듣습니다.
- T-JP는 이를 일본어로 통역합니다.
- T-JP의 오디오가 Jp 서브그룹에 속한 J2에게 전송됩니다.
- J2는 T-JP가 통역한 오디오 및 볼륨을 낮춘 E1, E2의 오디오를 듣습니다.