即构多人语音聊天室功能解析及搭建方法

  • 内容
  • 评论
  • 相关

语音和视频聊天,已成为社交软件的基础功能。在实时音视频技术支持下,社交APP延伸出了K歌语聊、语音电台、语音私聊等多样的玩法。此前,即构已推出语聊房一体化解决方案,帮助荔枝、喜马拉雅、酷狗、比心、Blued等多家社交APP实现产品功能升级。详细可查看:即构语聊房解决方案,让社交“有声”升级

为了构建更多的“语聊+场景”创新实践,即构在语聊房解决方案的基础上进行优化升级,推出语聊房场景的标准化封装SDK,平台只需简单编码即可实现语聊房核心功能。

基于服务多家头部语音社交平台的丰富经验,即构梳理了语聊房的标准架构和场景设计,通过对语聊房基础功能的解析,让客户对语聊房产品有进一步的了解。

核心概念解析

语聊房(Chatroom)
语聊房是维护一组麦位状态信息的语音互动直播间。语聊房中的用户数不设上限,可以通过调用相关接口创建、加入、离开房间。加入房间将自动开始收听房间内的互动直播,并可以接收房间内的聊天消息。

用户(User)
当前用户的信息,包含userID和userName两个字段,用于标识房间中的用户身份。每个用户都应具有唯一的userID,userName可以重复。

麦位(ChatroomSeat)
麦位是语聊房内用户参与互动直播的媒介。麦位上的用户(上麦者)即可参与互动直播,而未在麦位上的用户(观众)只能收听互动直播。
麦位会及时同步给房间内的所有用户。

麦位属性
麦位有三个属性,分别为状态(Status),用户(User),禁言标志位(Mute)。
麦位状态分为三种,分别是空状态、占用状态、关闭状态:
- 空状态(empty):当前麦位为空,用户可以进入该麦位加入互动直播。
- 占用状态(used):当前麦位已被用户占用,其他用户无法进入已被占用了的麦位。
- 关闭状态(closed):当前麦位已关闭,用户无法进入已被关闭的麦位。
当麦位为占用状态时,用户属性值为当前麦位上麦者的用户信息,否则属性为空。
此外,麦位还有禁言标志位,若打开禁言,则该麦位上的上麦者将被禁止发言。

麦位操作
用户需要对麦位执行麦位操作来修改麦位的状态,从而达到管理麦位的目的,麦位操作分为:
- 上麦(takeSeat):观众对一个空状态麦位执行上麦操作,将进入该麦位变为上麦者,麦位将由空状态变为占用状态。
- 下麦(leaveSeat):上麦者执行下麦操作,将离开对应麦位变为观众,对应麦位将由占用状态变为空状态。
- 换麦(changeSeat):上麦者执行换麦操作,将由当前麦位移动到换麦目标麦位,当前麦位将由占用状态变为空状态,目标麦位将由空状态变为占用状态。
- 抱用户上麦(pickUp):将指定观众抱上目标麦位,使其成为上麦者。
- 抱用户下麦(kickOut):将指定上麦者抱下麦位,使其成为观众。
- 禁麦/解麦(muteSeat):修改目标麦位禁言标志位,使得目标麦位上麦者(如果为占用状态)被禁言/解除禁言。
- 封麦/解封(closeSeat):修改目标麦位状态为关闭/空状态,执行封麦操作时如果目标麦位有上麦者,则会先将上麦者下麦,然后修改麦位状态位关闭状态。

功能设计

语聊房场景所需的功能如下:
1.多麦位语聊:房间内支持多人连麦及无限观众收听,并将麦位状态同步给房间内所有用户。
2.自定义房间配置:房间参数可以按需配置,如码率、麦位数等
3.背景音乐、音效播放:背景音乐与音效的播放互不干扰,背景音乐提供播放、暂停、歌曲列表、上一首、下一首、设置播放模式(单曲/循环/随机)、SEEK等常用功能。
4.Mic开关、外放开关、输入输出音量控制
5.后台程序:程序切换到后台仍然可以保持正常通话功能
6.IM:支持发送IM消息
7.音效设置:变声、立体声、混响等音效设置,并提供耳返试听。

场景架构

语聊房场景架构设计图如下:

  • ZegoRoomManager负责房间登录、状态管理
  • ZegoStateSyncManager负责麦位状态信息同步及修改
  • ZegoMusicPlayer负责背景音乐及音效的管理控制
  • ZegoChatroom负责麦位操作管理、判定,以及协调以上各模块的运转,并向外暴露接口

语聊房场景简要搭建流程

1)主播简要流程示例:
- 初始化
- 创建加入房间
- 执行麦位操作
- 离开房间

2)观众简要流程示例:
- 初始化
- 创建并加入房间
- 执行麦位操作(略)
- 离开房间

具体调用时序图

MusicPlayer

即构的语聊房场景SDK还封装了zegomusicplayer,用于语聊房的背景音乐、音效播放(音乐、音效播放互不冲突),并提供了歌曲列表管理以及播放控制等功能。

语音聊天场景中,用户主要通过语音来互动,因为对音质的体验更敏感。即构通过抖动缓冲、前向纠错等技术对抗弱网络的延迟,保障语音通话的低延迟和高音质。

即构语聊房SDK包含了多人语聊的众多基础功能,基于即构SDK开发者可实现快速的接入集成,构建多样化的语聊房产品。目前即构语聊房SDK已上线,点击【这里】可查看详细的集成文档。

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注