Epic Online Services (EOS) Voice インターフェース は、ユーザー間のボイス チャット ルームを作成および管理するのに役立ちます。このインターフェースを使用して、対戦中やアプリケーションのロビーで、複数のプラットフォーム間で一対一またはグループでコミュニケーションを取ることができます。
EOS CSDK の代わりに Voice Web API を使用して、カスタム ルームの管理と承認を実装する信頼できるサーバー アプリケーションを作成することができます。Voice Web API を呼び出す前に、Web API 概要 で標準、認証、エラーコード を確認してください。
Voice C インターフェース と同様に、Voice Web API は 信頼できるサーバー でのみの使用を目的とし、userRequired を無効にするポリシーが必要です。
Voice Web API エンドポイント
https://api.epicgames.dev/rtc/
ルーム トークンを作成する
メディアサーバーで音声会議に参加するには、ユーザーはルーム トークンを提供する必要があります。
createRoomToken
リクエストは、オプションのプレイヤー IP アドレスを使用して音声セッションに最適なサーバー リージョンを選択し、これらのトークンに ProductUserIds
のリストを照会します。
指定された roomId
が存在しないと、作成されます。
結果には、プレイヤー ルーム トークンと、音声セッションをホストするメディア サーバーのエンドポイントが含まれます。
ポリシー
クライアントは [Voice:createRoomToken policy](/game-services/voice#ポリシー コンフィギュレーション) が必要です。
ルーム トークン
応答に含まれる個々のトークンは、それらを要求した対応するプレイヤー (ProductUserId) とのみ共有する必要があり、グループ全体に表示されないようにする必要があります。これにより、キックされたプレイヤーが別のプレイヤーのトークンを再利用して再参加できる可能性があります。
認証
この呼び出しには、Connect インターフェス Web API から取得した EOS クライアント認証アクセス トークンを使用した Bearer トークン認証が必要です。
リクエスト
HTTP リクエスト | POST /rtc/v1/{DeploymentId}/room/{RoomId} | ||
HTTP ヘッダ | |||
名前 | 値 | ||
Authorization |
Bearer <EOSAccessToken> | ||
Content-Type |
application/json | ||
パス パラメータ | |||
名前 | 型 | 説明 | |
DeploymentId |
文字列 | EOS デプロイメント ID | |
RoomId |
文字列 | 選択した voice ルーム ID | |
POST ボディ パラメータ | |||
名前 | 型 | 説明 | |
participants |
配列<EosRoomParticipantRequests> | EosRoomParticipantRequests のリスト |
EosRoomParticipantRequests
EosRoomParticipantRequests | ||
名前 | 型 | 説明 |
puid |
文字列 | EOS ProductUserId |
clientIP |
文字列 | 参加者のIP。voice ルームの適切なサーバー地域を選択するために使用します |
hardMuted |
ブーリアン | 参加者の初期ミュート状態 |
リクエストの例
レスポンス
200 - OK: Success | ||
HTTP ヘッダ | ||
名前 | 値 | |
Content-Type |
application/json | |
JSON ペイロード | ||
名前 | 型 | 説明 |
roomId |
文字列 | voice ルーム ID |
clientBaseUrl |
文字列 | voice セッションに参加するメディア サーバーの URL |
participants |
配列 <EosRoomParticipantInfo> | EosRoomParticipantInfo のリスト |
deploymentId |
文字列 | リクエストのデプロイメント ID |
EosRoomParticipantInfo
EosRoomParticipantInfo | ||
名前 | 型 | 説明 |
puid |
文字列 | EOS ProductUserId |
token |
文字列 | メディア サーバーに参加するために使用される ProductUserId のルーム トークン |
hardMuted |
ブーリアン | 参加者のミュート状態 |
レスポンスの例
参加者を削除する
removeParticipant
要求は、プレイヤーをボイス ルームから削除し、ルーム トークンを取り消します。これにより、既存のトークンを再利用して同じルームへ再び参加することを防ぎます。
リクエスト
HTTP リクエスト | DELETE /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId} | |
HTTP ヘッダ | ||
名前 | 値 | |
Authorization |
Bearer <EOSAccessToken> | |
Content-Type |
application/json | |
パス パラメータ | ||
名前 | 型 | 説明 |
DeploymentId |
文字列 | EOS デプロイメント ID |
RoomId |
文字列 | プレーヤーのルーム ID |
ProductUserId |
文字列 | プレーヤーの製品ユーザー ID |
リクエストの例
レスポンス
HTTP Response 204 - No Content. |
レスポンスの例
参加者の修正
ルーム メンバーはリモートでミュート状態にすることができます。たとえば、ローカルでのミュート状態に関わりなく、全員をミュートすることができます。
リクエスト
POST /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId} | ||
HTTP ヘッダ | ||
名前 | 値 | |
Authorization |
Bearer <EOSAccessToken> | |
Content-Type |
application/json | |
パス パラメータ | ||
名前 | 型 | 説明 |
DeploymentId |
文字列 | EOS デプロイメント ID |
RoomId |
文字列 | 選択した voice ルーム ID |
POST ボディ パラメータ | ||
hardMuted |
ブーリアン | ミュート状態: true または false |
リクエストの例
レスポンス
HTTP Response 204 - No Content. |