七夕礼物准备好了吗?程序猿七夕礼物标配,给女友搭建专属语聊房,既浪漫又硬核!
语聊房在社交场景中使用比较广泛,社交APP中的语聊房场景的实现,主要由业务系统和移动/Web 客户端组成。其中业务系统需要实现语聊房的房间管理、麦位管理、音频流和麦位关联关系管理等功能,客户端需要实现语聊房的登录/登出房间、拉流/停止拉流、上麦推流/停止推流下麦等功能,还可以根据需要使用语聊房房间信息通道实现 IM 功能。
1.1 语聊房业务系统功能语聊房房间管理主要负责房间列表的维护。
创建房间:用户登录业务系统后,可以创建房间,创建房间后房间列表要做新增操作。
销毁房间:所有用户退出房间后,需要销毁房间,销毁房间后房间列表要做删除操作。
主要负责根据业务场景定义房间的麦位数量,以及当前房间所有麦位的状态管理。
用户进入房间后,只有空闲状态的麦位可以上麦。
用户上麦后,需要修改麦位状态为非空闲状态。
用户停止推流下麦后,要重置麦位状态。
主要负责管理房间内音频流和麦位的关联关系。
只有当前房间内非空闲状态麦位的流可以拉。
用户进入客户端后,选择房间列表中的房间或者自行创建房间,然后登录房间。
用户退出当前语聊房时,需要登出房间。
用户登录房间后或收到流新增消息时,需要根据流 Id 判断是否是本房间非空闲状态麦位推的流,如果是则发起拉流。
用户收到流删除消息或者登出房间之前,要停止拉流。
用户登录房间后,如果有非空闲状态的麦位,可以选择上麦。
用户上麦成功发起推流,成为麦上用户。
用户停止推流后下麦,成为观众。
用户可以通过房间信令通道,发送文字消息参与互动。