随着移动互联网技术飞速发展,语音社交逐渐崛起。越来越多的社交App增加了语音聊天功能,更有专门的语音社交软件应运而生,占据了不少“90后”“00后”的空闲时间。“音控”群体逐渐壮大,“连麦”互动更成为时下年轻人流行的社交方式。 语音聊天与文字聊天相比,更加生动有趣,且信息传递更高效;跟图片和视频相比,隐私性高、门槛更低,还能传达真实情绪。因此语音聊天已经成为远程办公和社交娱乐的沟通利器,越来越受用户喜爱。
如何实现语音聊天室
要实现语音聊天室,大致可以分为三步:实现语音连麦、支持本地混音,多种连麦模式的设计。
腾讯实时音视频的语音聊天室开源组件,就可以帮助你快速实现一个完整的语音聊天室。
这里梳理了通用的操作流程:
主播开播:
主播创建房间 -> 初始化房间的麦位表 -> 占用麦位表中的一个座位进行开播
观众进房:
观众进入房间 -> 展示房间的麦位表
观众上麦:
观众向主播申请某个座位上麦 -> 主播同意 -> 观众占用麦位表中的一个座位 -> 所有成员收到了麦位表的变化
主播邀请观众上麦:
主播向观众发送邀请上某个麦位 -> 观众同意 -> 主播修改麦位表抱观众上麦 -> 所有成员收到了麦位表的变化
主播停播(解散房间):
主播解散房间 -> 其他观众收到房间解散的通知 -> 观众退房
观众退房:
观众退房 -> 其他观众收到退房通知
01
主播开播
1. 主播调用`createRoom`创建新的语音聊天室,传入房间 ID(后续观众进房需要此 ID)、麦位数等房间属性,此时组件内部会自动创建IM群组,初始化麦位表等操作。
2. 主播创建房间成功后,调用`enterSeat`进入座位。
3. 主播收到组件的`onSeatListChange`麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
4. 主播还会收到麦位表有成员进入的`onAnchorEnterSeat`的事件通知,此时会自动打开麦克风采集。
02
观众进房上麦
1. 观众调用`enterRoom`并传入房间号即可进入房间。
2. 进房后会收到组件的`onRoomInfoChange`房间属性变化事件通知,此时可以记录房间属性并做相应改变,例如 UI 展示房间名、记录上麦是否需要请求主播同意等。
3. 进房后会收到组件的`onSeatListChange`麦位表变化事件通知,此时可以将麦位表变化刷新到 UI 界面上。
4. 进房后还会收到麦位表有主播进入的`onAnchorEnterSeat`的事件通知。
5. 观众端调用`sendInvitation`传入主播的 userId 和业务的自定义命令字等,此时函数会返回一个 inviteId,记录该 inviteId。
6. 主播端收到`onReceiveNewInvitation`的事件通知,此时 UI 可以弹窗并询问主播是否同意。
7. 主播选择同意后,调用`acceptInvitation`并传入 inviteId。
8. 观众端收到`onInviteeAccepted`的事件通知,调用`enterSeat`进行上麦。
9. 所有成员都会收到 `onSeatListChange`麦位表变化事件通知,此时刷新UI界面。
效果如下所示,简单的几个函数,主播开播、观众上麦一气呵成。
03
IM聊天、点赞、弹幕
移动端组件还集成了 IM SDK,用户可以通过组件的接口快速实现文字聊天、点赞等功能。
1.`sendRoomTextMsg` 发送普通的文本消息,所有在该房间内的主播和观众均可以收到`onRecvRoomTextMsg`事件通知。
2. `sendRoomCustomMsg` 发送自定义消息,可以在UI层定义送礼、点赞、弹幕等不同类型的自定义消息。
除了移动端的接口调用,用户还可以在腾讯云控制台配置对应的敏感词打击,对于不符合规则的文本聊天进行屏蔽,避免APP出现涉黄、涉政而被相关部门约谈。
如果需要对消息进行监听,例如送礼统计等,可以在 IM 的后台配置消息回调,这个回调会通知你的业务后台进行相关数据的统计。
高音质
对于普通的闲聊/游戏场景,我们推荐使用默认的音质模式,在这个模式下,语音清晰,透亮,声音流畅,网络抗性一流。
对于 KTV 等音乐场景,可以选用高音质模式,能给用户带来双声道 全频带的卓越体验。在高音质模式下,从采集,到上行编码全部流程都是高采样率的双声道处理,保证了音质的饱满。就像是在聆听在线的高音质音乐一样,这种模式的码率会达到128kbps。
上图是高音质的48k采样率,可以看到音乐的语谱最高频率可以到20kHz。下图的语谱图是通话音质,采样率只有16kHz,语谱的最高频率只有8kHz,很多高音成分都没有了。
环绕立体声背景音乐/音效变声
背景音乐/音效变声均使用了实时音视频 SDK 的接口实现,您只需要调用 `getAudioEffectManager` 即可使用丰富的音效接口。
对标全民k歌的混响音效(歌声,录音棚,磁性,KTV等等),并且可以在实时通话的场景下使用,无需离线处理再发送。
除了混响功能,还有众多变声特效可供选择,变声可以实时地把说话者的声音变成金属音,萝莉声、大叔、外国人等等,满足客户的隐私、娱乐的需求。
腾讯云实时音视频 TRTC 为专注语音社交的客户提供最优质音视频服务,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
欢迎使用实时音视频Demo进行运行测试,从腾讯云控制台简单开通实时音视频服务,再到跑通Demo,不到十分钟即可完成整个流程。