我们之前分享过很多在社交应用中的实时音视频场景。但是看到这个标题,你有可能会产生的第一个疑问是:游戏里的语音电台是什么?
这里所说的“语音电台”,其实是我们在 MMO、SLG、RPG 类游戏中看到的实时音视频应用场景的一个统称。具体功能上来讲,基本包括这些:
文字消息:队友、世界频道中的文字交流
多人语音通话
1 对 1 语音聊天
组队群聊,如开黑
语音直播,可以理解为在游戏中实现了一个语音直播房间
这些功能看上去是不是很眼熟?但是在 MMO、SLG、RPG 游戏中,是以什么样的形式,或者说情境下出现呢?我们把它们放在游戏里,简单举几个例子。
我们在这里以 MMO 游戏为例。在 MMO 游戏中,通常会有“自动战斗”功能,在游戏角色“全自动”刷金币的时候,玩家都在做其它事情。换句话说,这时你的玩家可能已把自动战斗的游戏放在一旁,在别的地方氪金。如果加入加入语音连麦、语音直播,则可以将玩家的精力留在游戏中的好友身上,一起聊天、打游戏。
另外,在游戏中加入直播元素也是一种促进用户互动的选择。最近在油管上就有一个很火的例子:吃鸡开始之前,一般玩家都处于待机的状态,而在视频中的玩家,仅通过声音就吸引了不少其它玩家的关注(想了解详情,请看视频)。在 MMO 类游戏中也可以引入这种场景,而且会得到更好的效果。在MMO游戏中“开直播间”,不论是语音聊天,还是唱歌,玩家同样可以打赏,而且不再是直播平台上的礼物,可以换作玩家真正需要的游戏道具、金币等。
除了以上两种场景,利用实时语音,还可以有更多有意思的玩法。
如何为游戏增加语音电台?
我们可以通过 Agora SDK 来快速实现,我们根据不同的功能来讲一下具体需要调用哪些接口即可实现。
功能 1: 接收/发送 IM 消息(语音消息/文本消息)
功能 2: 主播在直播频道中播放背景音乐
在游戏中加入实时语音,对开发者的技术要求较高。首先实现实时语音,本身就有一定的难度,需要我们面对难点包括:
1. 低延时
没人希望自己叫队友的时候,队友反应慢一拍。但是要做到实时语音的低延时,就要针对不同机型优化音频编解码算法,以降低音频在手机上的延时;增加网络节点覆盖,优化数据传输策略,以降低音频数据的传输延时。
2. 高并发
在游戏中,可能会出现上百人在世界频道中(比如吃鸡),也有可能会有成千上万个小群组在连麦,那么我们就需要对同一个语音频道的高并发,以及多个频道的高并发做好预案。
3. 消除回音与噪音
首先,回音的消除与设备的硬件、系统相关,需要针对不同机型进行编解码优化来消除。噪音方面,玩家可能会在各种环境中玩游戏,操作过程中敲击屏幕也会给通话带来噪音,那么我们就需要通过盲源分离算法来剥离噪音,让玩家的语音变得更加清晰。
与此同时,游戏与应用不同,游戏本身会占用较高的硬件资源、带宽,那么作为“后来者”的实时语音还需要满足以下要求:
较低带宽需求:不能因为增加语音而导致游戏延时严重升高;
功耗较低:尽量降低语音对CPU、内存的占用,对游戏的功耗影响要小;
灵活性:音质的高低与延时的高低在带宽有限的情况下是一对矛盾的CP,我们需要能灵活调整两者;
想了解详细每个接口的参数设置,请参考开发者文档。