Voice Web APIs

通过语音Web API以及RESTful服务来使用语音接口功能。

阅读时间4分钟

你可以使用 Epic在线服务(Epic Online Services)(EOS) 语音接口来创建和管理用户之间的语音聊天室。在比赛期间,或者在应用程序的大厅中,用户可以跨多个平台进行一对一或群组沟通。

你可以使用语音Web API(取代EOS C SDK)来创建可信的服务器应用程序,以实施自定义的房间管理和授权。在调用语音Web API之前,请查看Web API概览中规定的标准、身份验证错误代码

就像语音C接口一样,语音Web API预期用于在可信的服务器上使用,并且需要禁用了 userRequired 的策略。

语音Web API端点

https://api.epicgames.dev/rtc/

创建房间令牌

为了加入媒体服务器上的语音会议,用户需要提供房间令牌。

createRoomToken 请求将会查询这些令牌中的 ProductUserIds 列表,并且使用可选的玩家IP地址来选择用于语音会话的最佳服务器区域。

如果指定的 roomId 不存在,则会创建一个。

结果中将包含玩家房间令牌以及托管语音会话的媒体服务器的端点。

策略

客户端必须具有Voice:createRoomToken策略

房间令牌

响应中包含的个体令牌应该只能与请求令牌的相应玩家(ProductUserId)共享,不对整个组可见,因为这会让被踢出房间的玩家有机会重新使用其他玩家的令牌重新进入房间。

授权

此调用要求使用从连接接口Web API获取的EOS客户端身份验证访问令牌来进行Bearer令牌授权。

请求

HTTP请求 POST /rtc/v1/{DeploymentId}/room/{RoomId}
HTTP头
名称 数值
Authorization Bearer <EOSAccessToken>
Content-Type application/json
路径参数
名称 类型 描述
DeploymentId 字符串 EOS部署ID
RoomId 字符串 选择的语音房间ID
POST Body参数
名称 类型 描述
participants 数组 <EosRoomParticipantRequests> EosRoomParticipantRequests 列表

EosRoomParticipantRequests

EosRoomParticipantRequests
名称 类型 描述
puid 字符串 EOS ProductUserId
clientIP 字符串 参与者的IP,用于为语音房间选择合适的服务器区域。
hardMuted 布尔值 参与者的初始禁言状态

请求示例

响应

200 - OK: 成功
HTTP头
名称 数值
Content-Type application/json
JSON Payload
名称 类型 描述
roomId 字符串 语音房间ID
clientBaseUrl 字符串 用于加入语音会话的媒体服务器的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 - 无内容。

响应示例

修改参与者

房间成员可以远程静音,比如可以对所有人静音,不受其自己的静音状态影响。

请求

POST /rtc/v1/{DeploymentId}/room/{RoomId}/participants/{ProductUserId}
HTTP头
名称 数值
Authorization Bearer <EOSAccessToken>
Content-Type application/json
路径参数
名称 类型 描述
DeploymentId 字符串 EOS部署ID
RoomId 字符串 选中的语音房间ID
POST Body参数
hardMuted 布尔值 禁言状态:true or false

请求示例

响应

HTTP Response 204 - 无内容。

响应示例