그룹 통화 흐름
이 페이지는 LINE Planet의 그룹 통화(컨퍼런스) 흐름을 보여줍니다.
이 페이지의 다이어그램에서 앱 클라이언트와 앱 서버는 애플리케이션에 속하며, PlanetKit와 LINE Planet Cloud는 LINE Planet에 속합니다.
입장
앱 클라이언트는 애플리케이션 통신 채널을 통해 방에 입장하기 전에 방 ID를 공유해야 합니다.
Client 01이 비디오를 켠 채로 그룹 통화에 입장한 후, Client K가 비디오를 켜지 않고 입장했다는 가정하에 각 클라이언트가 입장하는 흐름을 살펴봅시다.
여기서 3가지 관련 이벤트를 볼 수 있습니다.
이벤트 | 발생 조건 | 설명 |
---|---|---|
evtConnected | joinConference() API 호출 후 | 완료 콜백 |
evtPeerListUpdated | 누군가 방에 입장하거나 퇴장한 후 | 새로 입장하거나 퇴장한 참여자 목록 전달 |
evtPeersVideoUpdated | - 방에 입장한 상태에서 비디오를 활성화 또는 비활성화한 후 - 비디오를 활성화한 상태로 입장할 때 | 비디오를 활성화 또는 비활성화한 참여자 목록 전달 |
피어 목록 업데이트 이벤트
evtPeerListUpdated
는 참여자가 업데이트될 때마다 발생합니다. 따라서 Client K가 참여하면 Client 01과 Client K 모두 이 이벤트를 받습니다.
피어 비디오 업데이트 이벤트
evtPeersVideoUpdated
는 참여자의 비디오 스트림이 바뀔 때마다 발생합니다.
위 예제에서는 Client 01만 비디오를 전송합니다. Client K는 evtPeersVideoUpdated
이벤트로 Client 01이 비디오를 활성했다는 것을 알게 됩니다.
evtPeersVideoUpdated
이벤트는 음성 통화 중에 영상 통화를 활성화했을 때도 발생할 수 있습니다. 더 자세한 내용은 음성 통화 중 영상 통화 활성화를 참고하세요.
이벤트의 업데이트 간격
앱 클라이언트는 업데이트 간격 내의 최신 정보를 기반으로 evtPeerListUpdated
와 evtPeersVideoUpdated
를 수신합니다. 결과적으로 앱 클라이언트는 누군가 입장 즉시 퇴장하는 경우처럼 업데이트 간격 내에서 발생하는 빠른 변경에 대한 이벤트를 수신하지 못할 수 있습니다.
LINE Planet Cloud는 내부적으로 이를 업데이트하는 스케줄러를 갖고 있으며, 스케줄링 간격은 현재 참여자 수가 늘어난 만큼 길어집니다. 즉, 참가자 수에 비례해 정보 업데이트가 늦어지는 것에 유의하세요.
피어 비디오 요청
evtConnected
이벤트가 발생한 후 앱 클라이언트는 자동으로 오디오 스트림을 받습니다. 단, 비디오 스트림은 앱 클라이언트가 적절한 비디오 해상도를 정해 requestPeerVideo()
를 호출하지 않는 한 LINE Planet Cloud에서 자동으로 전송하지 않습니다.
애플리케이션에서는 evtPeersVideoUpdated
콜백을 통해 누가 비디오 스트림을 활성화했는지 알 수 있습니다.
requestPeerVideo()
를 호출할 때 적절한 해상도 값을 인자로 전달해야 합니다. 자세한 설명은 그룹 통화의 피어 비디오 해상도를 참조하세요.
퇴장
앱 클라이언트는 참여자가 방에서 퇴장하려고 할 때 leaveConference()
를 호출해야 합니다. 이 변화는 방의 참여자 수를 바꾸므로 evtPeerListUpdated
이벤트를 발생시킵니다.
비디오가 활성화된 참가자
비디오를 활성화한 참가자가 방을 나가면 다른 참가자들은 evtPeersVideoUpdated
이벤트를 받습니다.
상태가 DISABLED
인 evtPeersVideoUpdated
이벤트는 WebPlanetKit 5.0 이상을 사용하는 참가자에게만 전송됩니다.
비디오가 비활성화된 참가자
비디오를 비활성화한 참가자가 방을 나갈 경우에는 evtPeersVideoUpdated
가 발생하지 않습니다.
관련 API
그룹 통화와 관련된 API는 다음과 같습니다.