Steam을 사용한 음성 통신의 시작점입니다.
음성 통신에 사용되는 인터페이스는 세 가지입니다.
음성 통신을 사용하려면 먼저 룸을 생성해야 합니다.
room_id = SteamVoip.create_room()
그런 다음, 모든 프레임에서 음성 시스템을 업데이트해야 이후에 클라이언트와의 통신이 설정됩니다.
클라이언트만 녹음 및 재생을 처리하기 때문에 이 단계에서는 어떠한 음성도 녹음되지 않습니다. 서로 다른 컴퓨터에 두 개의 클라이언트를 생성해야 합니다. 룸 생성자인 호스트도 원하는 경우 클라이언트를 생성할 수 있습니다. 호스트만 룸에 피어를 추가할 수 있고, 다른 피어는 룸에 참여하려면 룸 ID를 알아야 합니다. 그러므로 하나는 참여 요청용으로, 다른 하나는 참여 수락용으로 두 개의 RPC를 설정하는 것이 좋습니다.
클라이언트를 생성하려는 피어는 호스트에게 RPC를 전송합니다.
RPC.want_to_join_room(host)
호스트는 이 RPC를 처리하고, 이 피어를 룸에 추가하고, 피어가 참여할 룸을 나타내는 RPC를 다시 전송해주는 것으로 응답합니다.
function CallbackObject:want_to_join_room(sender)
SteamVoipRoom.add_member(self.room_id, sender)
RPC.accept_join_room(sender, self.room_id)
end
피어는 이 수락 RPC를 처리하고, 허용되면 룸에 참여해야 합니다.
function CallbackObject:accept_join_room(host, room_id)
self.client = SteamVoip.join_room(host, room_id)
end
이제 클라이언트 피어가 호스트뿐 아니라 VoIP 시스템도 업데이트해야 합니다. 그리고 참여 중인 구성원들에게 알리기 위한 콜백 오브젝트를 제공합니다.
SteamVoip.update(callback_object)
새로운 피어가 룸에 추가되면 연결되어 있는 모든 클라이언트가 콜백을 수신하고, 클라이언트는 재생할 팀파니 이벤트와 이 이벤트에 대해 재생할 사운드 소스에 관한 정보를 통해 이 콜백에 응답해야 합니다. 팀파니 이벤트는 음성에 대한 볼륨 등을 설정하기 위해 존재해야 하는 더미 이벤트입니다.