此语音示例将演示如何在客户端和服务器应用的基础上,为C SDK实现安全的语音聊天系统。
示例包括以下功能:
- 请求令牌以允许用户加入有其他用户的房间(通过服务器)
- 加入有好友或其他用户的房间
- 离开房间
- 将你自己的音频静音
- 将其他用户的音频静音(通过服务器且仅允许房主操作)
- 将另一名用户踢出房间(通过服务器且仅允许房主操作)
- 用户在发言或被禁言时显示状态更新
- 变更音频输入和输出设备
语音客户端
Windows 32/64位设置
本节将介绍32位和64位Windows操作系统语音客户端示例应用程序的构建和运行。
构建Win64/Win32专用语音客户端示例应用程序
- 将
EOS-SDK.zip
解压到你选择的位置。 - 导航至 EOS-SDK > 示例(Samples)。
- 双击
Samples.sln
。Visual Studio会和它一起在 解决方案浏览器 中打开。 - 将 启动项目(StartUp Project) 设置为 语音(Voice)。
- 打开
SampleConstants.h
,然后根据数值为测试应用程序更新 ProductId、SandboxId、DeploymentId、ClientCredentialsId 和 ClientCredentialsSecret。 - 选择解决方案配置:
Release_DX
或Debug_DX
。 - 选择解决方案平台:x64 (Win64)或x86 (Win32)。
- 在 解决方案浏览器 中右键单击 语音(Voice) 项目并选择 构建(Build)。
- 构建成功后,你应该在
\EOS-SDK\Samples\Voice\Client\Bin\Win64\Release_DX\
下有一个有效的Voice.exe
。
现在你可以运行示例应用程序。
运行Win64/Win32专用语音客户端示例应用程序
如需运行语音客户端示例应用程序:
- 比如,导航至
\EOS-SDK\Samples\Voice\Client\Bin\Win64\Release_DX\
- 运行
Voice.exe
- 添加
-serverport <port>
以变更服务器侦听端口。 - 添加
-serverurl <url>
以变更服务器URL。
MacOS或Linux系统设置
设置先决条件
要在MacOS上构建语音客户端示例应用程序,你需要安装以下依赖项:
构建MacOS或Linux专用语音客户端示例应用程序
- 将
EOS-SDK.zip
解压到你选择的位置。 - 在终端中,导航至
/EOS-SDK/Samples/Voice/Client/
- 打开
SampleConstants.h
,然后根据数值为测试应用程序更新 ProductId、SandboxId、DeploymentId、ClientCredentialsId 和 ClientCredentialsSecret。 - 运行:
./Build.sh
(你也可以在Mac上通过 查找器(Finder) 运行Build.command
。 - 一旦构建成功完成,你会在以下目录下新创建文件:
/EOS-SDK/Samples/Voice/Client/Build/
现在你可以开始运行示例应用程序。
运行MacOS或Linux专用语音客户端示例应用程序
如需打开示例应用程序:
- 导航至
/EOS-SDK/Samples/Voice/Client/
- 运行:
./Run.sh
(你也可以在Mac上通过 查找器(Finder) 运行Run.command
。 - 添加
-serverport <port>
以变更服务器端口。 - 添加
-serverurl <url>
以变更服务器URL。
使用语音客户端示例应用程序
如需使用开发人员身份验证工具登录,选择 开发人员身份验证(Dev Auth) 选项,然后再选择 登录(Log In)。登录后,语音客户端示例应用程序包括以下选项:
加入
点击 加入(JOIN),启动加入房间流程。通过服务器应用程序生成请求,以获得将用于进入房间的加入房间令牌。
由于当前房间无其他玩家,系统将创建新房间,同时将你添加到此新建房间。房间编号会显示在房间:(“Room:)”框中,“房间成员(ROOM MEMBERS)”表会更新,以显示你加入的房间:
离开
使用 离开(LEAVE) 房间退出目前你为其成员的房间。
禁言
禁言(MUTE) 仅适用于本地用户,可用于将你的音频静音。你的音频被静音后,你会看到音频状态图标变为红色,如下所示:
仅限房主
房主可以选择将另一名用户静音,或将其踢出当前房间。
远程禁言
点击 远程禁言(REMOTE MUTE) 可将该用户禁言。
踢出
点击 踢出(KICK) 将该用户踢出当前房间,他们无法重新加入房间,除非请求并获得新房间加入令牌。
聊天
在好友列表中点击好友名字旁的 聊天(CHAT),然后你会被添加到他们的房间,与他们聊天。
你也可以使用 加入(JOIN) 控制台命令与非好友玩家加入同一个房间。
音频设备
你可以使用 设置(SETUP) 对话框中的下拉菜单更改输出和输入音频设备:
发言状态
用户正在发言时,音频状态图标会变为绿色和一个完整的喇叭:
控制台命令
加入
- 用途:“JOIN ROOM_NAME”。
- 为本地用户启动加入房间流程。
- 如果提供了
ROOM_NAME
,则在允许后可加入此房间。 - 如果未提供
ROOM_NAME
,则会在创建新房间后加入。
离开
- 用途:“LEAVE”
- 本地用户将离开当前房间。
踢出
- 用途:“KICK USER_ID”。
- 将用户踢出当前房间。
- 如果你不是房主,则无法进行任何操作。
USER_ID
是一个ProductUserId。
远程禁言
- 用途:“REMOTEMUTE USER_ID MUTE”。
- 为用户设置远程禁言状态。
- 如果你不是房主,则无法进行任何操作。
USER_ID
是一个ProductUserId。- 禁言(MUTE) 为
1
时表示禁言,为0
则表示取消禁言。
语音服务器
Windows 32/64位系统设置
本节将介绍32位和64位Windows操作系统专用语音服务器示例应用程序的构建和运行。
构建Win64/Win32专用语音服务器示例应用程序
- 将
EOS-SDK.zip
解压到你选择的位置。 - 导航至 `\EOS-SDK\Samples\。
- 双击
Samples.sln
。Visual Studio会和它一起在 解决方案浏览器 中打开。 - 将 启动项目(StartUp Project) 设置为 语音服务器(VoiceServer)。
- 打开
SampleConstants.h
,然后根据数值为测试应用程序更新 ProductId、SandboxId、DeploymentId、ClientCredentialsId 和 ClientCredentialsSecret。 - 选择解决方案配置。使用
Release
或Debug
。 - 选择解决方案平台:x64 (Win64) 或 x86 (Win32)。
- 在 解决方案浏览器 中右键单击 语音服务器(VoiceServer) 项目并选择 构建(Build)。
- 构建成功后,你应该在
\EOS-SDK\Samples\Voice\Server\Bin\Win64\Release\
下有一个有效的VoiceServer.exe
。
现在你可以运行示例应用程序。
运行Win64/Win32专用语音服务器示例应用程序
如需运行语音服务器示例应用程序:
- 比如,导航至 \EOS-SDK\Samples\Voice\Server\Bin\Win64\Release`
- 运行
VoiceServer.exe
- 添加
-voiceserverport <port>
以变更服务器侦听端口。 - 添加
-voiceserverurl <url>
以变更服务器URL。
MacOS或Linux系统设置
设置先决条件
要在MacOS上构建语音服务器示例应用程序,你需要安装以下依赖项:
- cmake
- gcc(通过Mac专用Xcode命令行工具)
构建MacOS或Linux专用语音客户端示例应用程序
- 将
EOS-SDK.zip
解压到你选择的位置。 - 在 终端(Terminal) 中,导航至
/EOS-SDK/Samples/Voice/Server/
- 打开
SampleConstants.h
,然后根据数值为测试应用程序更新 ProductId、SandboxId、DeploymentId、ClientCredentialsId 和 ClientCredentialsSecret。 - 运行:
./Build.sh
(你也可以在Mac上通过 查找器(Finder) 运行Build.command
。 - 一旦构建成功完成,你会在以下目录下新创建文件:
/EOS-SDK/Samples/Voice/Server/Build/
现在你可以开始运行示例应用程序。
运行MacOS专用语音服务器示例应用程序
如需打开示例应用程序:
- 导航至
/EOS-SDK/Samples/Voice/Server/
- 运行:
./Run.sh
(你也可以在Mac上通过 查找器(Finder) 运行Run.command
。 - 添加
-voiceserverport <port>
以变更服务器侦听端口。 - 添加
-voiceserverurl <url>
以变更服务器URL。
使用语音服务器示例应用程序
语音服务器是一个以控制台为基础的应用程序,所以无GUI元素,调试文本将打印到控制台和调试日志文件(默认:DebugOutput.log
)。会将错误打印为 红色 文本,警告是 黄色 文本。
一旦语音服务器应用程序启动,可保持运行,并将处理来自多个客户端的请求。
使用 Ctrl+C
终止服务器应用程序。