0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一套代码快速实现一个语音聊天室

BYXG_shengwang 来源:未知 作者:胡薇 2018-06-29 15:52 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

语音聊天在泛娱乐社交行业中有着重要的地位,行业中很多佼佼者也都为用户提供了语音聊天室,甚至有些平台最初就是依托语音聊天起家的。从最初的一对一语音,到以 YY 为引爆点的多人语音群聊,再到现在聚集了一批“音控”且月流水能达到1亿的纯语音社交平台,很多类型的应用中都有语音聊天室,我们来简单列举几个。

语音电台

这是语音聊天室中比较典型的场景。主播可以在直播间中与给听众讲故事、唱歌,内容形式不一而足,观众也可以申请上麦,与主播聊天互动。主要实现的功能就是语音连麦,以及通过消息系统来实现的文字消息功能。看似简单,但是有些优质的语音社交平台能达到每月1亿的流水。

语音开黑

目前还有一些游戏不支持实时语音通话的功能。同时,也有一些王者玩家想收费带青铜小白上分,而游戏中不支持付费带玩,那么语音聊天室成为了满足需求的出口。在一些应用中,玩家可以通过可付费预约的语音聊天室,允许其他玩家预约陪玩的,同时还可以语音开黑。功能上与语音直播相似,只是在这个频道中,不需要增加观众上下麦的逻辑。

以上只是包含了语音聊天的部分场景而已,综上来看,语音聊天室需要满足的主要功能包括:支持多人参与的语音聊天;支持播放背景音乐;支持设置背景图片;

如何实现语音聊天室

要实现一个具备以上功能的语音聊天室,大致可以分为两步:实现语音连麦、支持背景音乐播放。

首先是实现语音连麦。如果要通过自研的方法实现,会相对复杂一些,不仅需要自己部署服务器并做好高并发应对,对编解码器进行优化以解决回声和噪声问题,还要合理部署边缘节点来解决网络延时问题。而以上这些问题,我们早已为开发者解决,并将接口集成于声网 SDK 中。同时,我们为了帮开发者们快速实现,现已正式推出语音聊天室场景化方案。

语音聊天室场景化方案是基于声网视频通话 SDK 实现的。为什么是视频通话 SDK 而不是语音 SDK 呢?视频通话 SDK 支持语音与视频功能。若开发者做好语音聊天室后,还可以根据自己需要在该基础上实现视频连麦。而且,更便于已经开发视频连麦直播的开发者,进一步实现语音聊天室。下图为语音聊天室场景化方案的架构图与实现思路:

首先,房主一端创建 RtcEngine 对象,并填入 App ID。通过setChannelProfile 将频道设置为直播模式。然后用 setClientRole 来设定主播(Broadcaster)和观众(Audience)的角色。在主播或观众离开房间时,通过调用LeaveChannel来完成。我们可以通过一张图,来了解语音聊天室中接口调用逻辑:

其次,我们还可以为语音聊天室增加背景音乐。主播可以在自己的客户端上选择要播放的音乐,然后通过 SDK 的 AudioMixing 接口在本地与主播语音混音后播放给连麦听众和普通听众。

观众上下麦、主播离开房间、聊天背景图片的切换等控制消息,都会通过消息系统来实现。消息服务器还承载着另一个任务,就是传输用户在来聊天室中的文字消息的传输。

最后,考虑到在娱乐直播、游戏开黑、社交,甚至是教育场景下的语音聊天室,对于声音的码率、采样率、声道数的需求都有细微差别。我们在SDK中,还提供了“设置音质”的接口,即 setAudioProfile,供开发者根据实际听到的效果来自由调整。

举个例子,如果做的是娱乐方向的应用,会遇到听众频繁上下麦,并且需要48 KHz采样率、音乐编码、双声道、编码码率 192 kbps,那么可按照上述代码来设置 profile、scenario。SDK 中对这个接口的 profile 与 scenario 各有5个不同的参数设置,具体大家可点击「阅读原文」查看 setAudioProfile 的详细文档。

声网语音聊天室场景化方案

有些开发者希望以语音社交切入泛娱乐市场,也有一些市场上的视频社交玩家,希望加入语音聊天室,来进一步拓展市场版图。由于该场景方案是基于声网视频通话 SDK 实现,可以同时满足以上两种需求。

我们在 Github 已经提供了一套完整的 Demo,大家可以点击「阅读原文」在开发者文档中心获取。在 Demo 的基础上,开发者只需要不到1周的时间,对 UI 和功能做简单修改即可准备测试上线。语音聊天室场景化方案的优势包括:

76ms 低延时

声网 SDK 实现了全球平均端到端76ms 的实时音视频低延时传输。声网Agora SD-RTN™ 实时通信网络采用私有 UDP 协议进行传输,基于软件定义优化路由选择最优传输路径,自动规避网络拥塞和骨干网络故障带来的影响。同时,根据我们的统计,除了电信、联通、移动三大运营商,全国还有约2%的小运营商用户。声网也已覆盖支持了这2%用户所在的数十家中小运营商。

44.1KHz 高音质

对于面向“音控”用户的产品来讲,必须要保证主播音质和背景乐音质的还原度。声网语音聊天室场景化方案能保证低延时传输的同时,支持192Kbps 44.1KHz 高音质语音。

快速且易于集成

通过几个接口的调用即可实现语音聊天室。对于初次接触声网 SDK 的开发者,我们还提供了完成度较高的 Demo,开发者在根据自己的需求修改 UI 与功能后,即可在短时间内完成产品原型的开发。同时,SDK 已经为开发者提供消息系统,可以直接通过接口调用。

高灵活度与扩展性

基于该方案开发的泛娱乐社交产品,可以在无需增加新 SDK 的情况下,进一步实现视频聊天室。同时,对于声网的老用户来讲,在原先视频连麦产品的基础上,快速实现语音聊天室。另外,声网 SDK 还为开发者提供更多接口来进一步实现更多功能。

目前,专注于语音社交的荔枝,在游戏开黑方面的佼佼者 HeyHey,以及在海外市场做得风生水起的直播应用 Yalla 都在使用由声网 SDK 提供的实时音视频服务。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SDK
    SDK
    +关注

    关注

    3

    文章

    1093

    浏览量

    51180

原文标题:从底层核心到UI,一套代码快速实现语音聊天室

文章出处:【微信号:shengwang-agora,微信公众号:声网Agora】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用SpringBoot、Vue2.0、MySQL开发一套云诊所系统?

    ​ 如何使用Java语言;前端框架:Vue2.0;后端框架:SpringBoot;数 据 库: MySQL 这些技术开发一套云诊所系统? 技术栈分析: 后端:SpringBoot
    的头像 发表于 11-27 16:02 128次阅读
    如何使用SpringBoot、Vue2.0、MySQL开发<b class='flag-5'>一套</b>云诊所系统?

    SAW 滤波器从原理到测量:一套可复用的实验实战流程

    的实战测量流程。从测试治具、矢网校准到 S 参数与群时延的判读,给出一套可复用、可重复的 SAW 滤波器实验测量方法,帮助工程师把 datasheet 上的“漂
    的头像 发表于 11-20 14:32 3092次阅读
    SAW 滤波器从原理到测量:<b class='flag-5'>一套</b>可复用的实验<b class='flag-5'>室</b>实战流程

    一套听声辩位的算法,并在板机上部署?

    一套听声辩位的算法,并在板机上部署。有谢。
    发表于 11-10 23:07

    什么是语音芯片串口AT指令?实现智能语音交互的核心技术详解

    什么是AT指令AT指令是一套基于串行通信接口的标准化指令集,专门用于声音播放芯片与其他设备之间的数据传输和控制操作。这种通信协议通过简单的文本命令格式,实现了对语音
    的头像 发表于 11-10 12:53 165次阅读
    什么是<b class='flag-5'>语音</b>芯片串口AT指令?<b class='flag-5'>实现</b>智能<b class='flag-5'>语音</b>交互的核心技术详解

    怎么实现一套容器运行时,并符合OCI规范?

    如题,怎么实现一套容器运行时,并符合OCI规范
    发表于 10-10 07:35

    如何搭建一套安防监控管理平台?

    构建一套现代化的安防监控管理平台,本质上是建设集数据采集、传输、处理、存储、分析与应用于体的综合型技术中枢。其技术架构需遵循模块化、高可用、可扩展及开放性的设计原则,具体可分为以
    的头像 发表于 09-04 16:19 727次阅读
    如何搭建<b class='flag-5'>一套</b>安防监控管理平台?

    分支多、云也多,网络又慢又烧钱?一套方案全搞定!

    、成本控制与运维效率的多重压力。面对这些挑战,是否有一套网络架构能够“全搞定”?答案是肯定的。基于行业实践与技术演进,我们逐渐形成了一套以SD-WAN+云网融合平台+
    的头像 发表于 08-28 14:25 979次阅读
    分支多、云也多,网络又慢又烧钱?<b class='flag-5'>一套</b>方案全搞定!

    德思特案例 | 一套设备兼容四大测试场景:全面解析弱网测试方案

    随着用户对网络体验要求的不断提升,弱网环境下的稳定性已不再是“加分项”,而是终端产品必须具备的“基本功”。德思特通过现网模拟 + 参数可控 + 自动化测试 + 创新硬件设计,为行业提供了一套完整、可复用、可扩展的弱网测试解决方案。
    的头像 发表于 08-08 10:47 771次阅读
    德思特案例 | <b class='flag-5'>一套</b>设备兼容四大测试场景:全面解析弱网测试方案

    快速开发汽车充电桩的屏幕驱动与语音提示方案

    芯片来实现,现在新的快速开发解决方案来了! 、屏幕驱动+语音播放集成方案 语音与屏幕的联动:WT2606B可以驱动屏幕显示 “请插入充电枪
    的头像 发表于 07-16 17:11 1705次阅读
    <b class='flag-5'>快速</b>开发汽车充电桩的屏幕驱动与<b class='flag-5'>语音</b>提示方案

    语音助手只能聊天?启明云端AI语音交互方案偷偷修炼了音乐才艺!

    语音助手只能聊天?太out了!”语音交互的新乐章已经奏响!启明云端基于乐鑫科技芯片的AI语音方案正式解锁音乐技能树,只需句指令,智能设备
    的头像 发表于 06-27 18:03 705次阅读
    <b class='flag-5'>语音</b>助手只能<b class='flag-5'>聊天</b>?启明云端AI<b class='flag-5'>语音</b>交互方案偷偷修炼了音乐才艺!

    HarmonyOS实战:快速实现上下滚动的广告控件

    上要想实现这样的功能并不容易,那么在鸿蒙上怎么实现这样的功能呢?本篇文章教你使用最简单的方式实现支持上下滚动的广告控件,建议点赞收藏!
    的头像 发表于 06-24 17:05 369次阅读

    新品 | M5Stack AI Chatbot,迷你小智AI聊天机器人,一套搞定语音/视觉 AI 开发

    最近有很多博主分享了用M5Stack硬件接入小智AI或者火山引擎AIGC等AI智能,实现语音交互的智能助手功能,受到了社区的广泛关注。但很多用户表示:不知道该买哪些产品,也不清楚怎么配置。为此
    的头像 发表于 05-23 18:09 1702次阅读
    新品 | M5Stack AI Chatbot,迷你小智AI<b class='flag-5'>聊天</b>机器人,<b class='flag-5'>一套</b>搞定<b class='flag-5'>语音</b>/视觉 AI 开发

    电力物资仓库管理系统 DW-S200是一套成熟系统

    电力物资仓库管理系统DW-S200系统是一套成熟系统,电力的正常运营至关重要,而为了确保工作人员的正常工作和电网安全且正常的运作,供电部门对于电力设备和工具的采购、使用、检查和维护均有严格的规定。为
    的头像 发表于 02-11 13:40 526次阅读
    电力物资仓库管理系统 DW-S200是<b class='flag-5'>一套</b>成熟系统

    如何使用Java语言快速开发一套智慧工地系统(源码)

    使用Java语言快速开发一套智慧工地系统,可以遵循以下步骤和策略: 1、确定系统架构 微服务架构:采用Spring Cloud构建微服务,每个服务负责特定的功能模块,如安全监控、人
    的头像 发表于 01-09 17:39 1015次阅读

    HarmonyOS NEXT 原生应用开发:社交聊天对话过程实现

    实现思路 本DEMO旨在展示如何在HarmonyOS NEXT平台上,利用ArkTS开发语言构建简易的社交聊天对话界面。用户可以在此
    发表于 01-07 10:55