如何快速构建社交APP中的语音房

文章须自出机杼,成一家风骨。 —— 魏收

一、需求背景

近年来,在线语音聊天的用户量持续上升。语音可承载的信息密度比文字图片丰富,同时又比视频更简单;不失为一种抓住新时代用户和实现流量变现的有效途径。在陌生人社交领域,为了满足用户的情感需要、娱乐需求等,晓宇公司也在自己的应用中推出了语音房的功能。

二、什么是语音房

  • 什么是社交语音房/h3>

语音房是一款基于一对一的语音电话,语音聊天基础之上的一个多人聊天交流场景;能够同时支撑多人在一个房间的语音互动,这里的语音交互与发语音消息不同,而是类似于多人语音电话,能够实时进行交互沟通。

如何快速构建社交APP中的语音房 如何快速构建社交APP中的语音房 如何快速构建社交APP中的语音房
  • 社交语音房能做什么nbsp;

社交中的语音房最核心的目的一定是促进用户之间的交流,快速提升用户间的关系;语音房能够通过多人同时通话的方式;要比文字,语音消息的方式更富有情感,更直接的让用户之间进行情感交流。可以实现:纯语音聊天、游戏互动、情感电台、线上 KTV 等场景。

三、功能描述

  • 场景化

语音房功能可以比较契合生活中的 KTV 场景,在实际应用中也确实可以实现线上歌房。

  1. KTV 的房间是相互隔绝的(不要钻牛角尖),不同的房间是听不到声音的;语音房也一样,每个房间相互隔离,没有联系。
  2. KTV 的房间中麦克风数量是有限的,语音房中同样提供的上麦数量是有限的。
  3. KTV 的房间中可以容纳的人数是远大于能够拿到麦克风唱歌的人数的;语音房中能够容纳的人数同样是远大于能够上麦说话唱歌的数量。
  4. KTV 的房间中拿着麦克风的时候,可以选择性唱歌;语音房中上麦的用户可以选择不说话,可以进行控制。
  5. KTV 中有限的麦克风是流动性的,不是仅仅某几个人能够唱歌;语音房的上下麦就是对有限的麦位进行流动,麦位数量不变,但是拿着麦的人是可以变化的。
  • 功能描述

  • 创建语音房

首先需要玩语音房,我们需要创建一个房间,创建房间需要设置房间的一些基本信息,如下图所示:

创建房间的时候可以自定义房间的名称,或者根据系统提供的名称进行随机获取。

如何快速构建社交APP中的语音房
  • 创建语音房流程图

在进行房间信息填写完成之后,还需要最后一步就可以创建成功了;点击创建,客户端请求服务端接口房间创建完成。服务端内部主要流程如下:

如何快速构建社交APP中的语音房

 初始化房间流程中,服务端只是进行存储用户设置的数据及初始化房间麦位信息;以及生成对应房间的靓号及对应的 rtc 频道 id 返回给客户端,客户端进行创建频道信息等操作。

  • 房间基础信息

  • 表中将房间的基本信息及管理员也都放在该表中,导致表的字段较多,以及修改管理员的时候也会更改到房间的基础信息,其实可以将管理员相关信息拆出去。
  1. mic_mode:控制房间用户的上麦模式,例如:申请上麦模式,需要由用户进行申请上麦,管理员/房主同意。
  2. room_layout:用于控制房间能够进行连麦的数量,能够在指定范围内修改房间麦位的数量。
  3. room_source:房间创建的渠道,每个用户可以在不同的渠道创建一个房间;这样子的好处是可以在一个应用支持不同的场景使用聊天室。
  4. room_number:房间编号,过滤掉靓号,可以后续进行靓号的运营。
  5. room_owner_organization_id:创建渠道(room_source)如果是组织类型的,需要存储用户对应的组织id。
  6. room_game:在房间基础之上可以增加新的游戏玩法,例如:拍卖,婚礼等。
  • 创建语音房接口

  • 上麦

首先,如下图所示,上麦的模式分为自由模式上麦,以及排队模式上麦;自由模式上麦顾名思义就是只要房间的麦位上没有用户占有,点击之后即可上麦;排队模式上麦则是针对普通用户(管理员/房主除外),无法直接上麦,点击上麦按钮之后会进入到排麦队列中,等待管理员/房主的同意(拍麦队列中只有管理员/房主才有同意的权限)才能够按照上麦的规则进行上麦。

如何快速构建社交APP中的语音房

如何快速构建社交APP中的语音房

如何快速构建社交APP中的语音房

其次,上麦类型分为主动上麦和被动上麦,该概念是从开发角度来区分出来的;用户主动点击上麦操作称为主动上麦;用户被管理员/房主邀请上麦,再由用户点击确认上麦动作为被动上麦。被动上麦的图如下所示:

如何快速构建社交APP中的语音房

如何快速构建社交APP中的语音房
  • 上麦流程图

如何快速构建社交APP中的语音房

 

上麦流程中需要针对用户的权限进行校验,及根据当前房间的模式及业务方选择的策略方式(根据角色位置上麦/根据位置倒序上麦等)进行上麦或者排队操作;最后需要发送房间麦位上的数据发送 rtm 到客户端进行渲染。

  • 麦位信息

麦位的信息是以房间维度,不是用户的维度,业务方调用初始化房间的时候,房间初始化多少个麦为数据一般由业务方来控制。

  1. booth_index:当前位置的下标位置。
  2. booth_abilities:当前麦位的类型,由业务方来控制麦位的数据以及对应麦位的类型;与上麦的策略相关。

来源:晓宇科技技术团队

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年11月26日
下一篇 2021年11月26日

相关推荐