为了让开发者对连麦互动更有直观的体会,anyRTC上线了语音连麦Demo,让开发者除了了解概念,更能去实际操作,借鉴流程,更容易打造自己的产品场景。

目前anyRTC已经适配了iOS、Androd、Web、小程序、Windows、macOS、Linux。还有跨平台系列,Flutter、uni-app、APICloud.开发者可以根据自己的公司的实际情况来选择。anyRTC 将不留余力助你在音视频场景上打造完美盛宴。

简述

语音沟通是社交软件必备的功能,语音和文字图片相比更加丰富,与视频相比更加简单便捷。除了以往单纯的一对一语音聊天之外,在实时音视频技术的快速发展下,诞生了很多有趣的玩法。

语音连麦APP的分类及玩法

  • 语音直播类

  • 游戏开黑类

  • 聊天房类

  • 语音游戏类

目前市场上的开黑类app大致可以分成以上4类。因为不同种类的app针对人的目标群体是不同的,所以在玩法上也一些差别。

语音直播类

目前比较火的是语音连麦玩法。角色分为主播和观众,主播可以在自己的直播间唱歌,讲故事、说脱口秀、内容形式有很多,观众也可以主动申请上麦与主播聊天互动。主要实现的功能就是语音连麦。在聊的基础上,加上了背景伴奏音以及通过消息系统来实现的文字消息功能。看似简单,但是这种模式用户的活跃度较高,付费意愿也更高,一些优质的语音社交平台能达到很高的流水。

游戏开黑类

游戏开黑类app主要是作为游戏进行中语音沟通的媒介,因为多人一起在玩游戏的时候经常会出现有杂音,声音延迟,或者听不清楚的问题。而语音开黑类app就完美的解决了这些问题,可以让你在玩游戏的同时保持正常的语音交流,提升用户体验。

聊天房类

聊天房类的app目前是比较火的一类。进入聊天房后,每一个房间都是自己的主题,用户可以在房间内畅所欲言,同时支持变声。如果不想发言也可以选择观众模式,不参与互动只收听或者发弹幕也是可以的。

语音游戏类

语音游戏,它也是语音聊天室的常见应用场景。从大热的狼人杀、剧本杀,越来越多的游戏开始为玩家创建实时互动的场景,同时实时的音视频对话也成为了部分游戏类型的主要功能。功能上与语音直播相似,只是在这个频道中,上麦下麦的玩法逻辑有所不同。

如何实现语音聊天室

以上只是包含了语音聊天的部分场景。综上所述,语音聊天室需要满足的主要功能包括:

  • 支持多人参与的语音聊天

  • 支持本地混音

  • 多种连麦模式

要实现一个具备以上功能的语音聊天室,大致可以分为三步:实现语音连麦、支持本地混音,多种连麦模式的设计。

首先是实现语音连麦。如果要通过自研的方法实现,难度会比较大:

  • 需要自己部署服务器做好高并发处理;

  • 需要对编解码器优化来解决回声、噪声问题;

  • 需要有成熟的技术方案降低延迟、提高音质;

  • 需要兼容各种网络环境下的用户体验等。

总体来讲,就是需要解决设备端、网络中的语音连麦稳定低延时问题与可用性问题。

下图为语音聊天室场景化方案的架构图与实现思路:

实现语音连麦

通常,观众上麦请求、主播通过上麦申请等一系列操作都是通过消息服务来完成的。任意模式下,进入房间后可以允许听众上麦,用户发出上麦申请,房主同意后,听众可上麦,角色由听众变为了主播。

目前anyRTC提供两种语音连麦方式,分别是本地合流,和服务端合流。

下面先给大家介绍一下本地合流这种方式:

本地合流

1、简介

该方案为本地合流方案,主播端跟连麦端实时互动,主播端在本地进行音视频混流并推流到RTMP。

2、方案流程图

3、调用时序图

主播端:

客户端:

流程: 游客初始化RTC后,初始化播放器,播放RTMP,申请连麦通过后,调用加入频道方法,加入频道成功后,停止播放RTMP。下麦后,调用leaveChannel,并调用播放器的播放进行播放RTMP流:

4、配套SDK

实时消息SDK: 使用RTM SDK 进行信令交互,申请连麦、同意、拒绝的消息送达。消息送到后座对应的逻辑处理。

实时音视频SDK: 使用RTC SDK 进行音视频通信,根据用户身份的角色使用配套的SDK

本地合流类: 主播端调用,负责本地的音频流合成并推向RTMP

播放器类: 游客端调用,负责播放RTMP,当上麦的时候停止播放,并调用RTC的加入房间,当下麦的时候,离开频道,并继续调用播放器的播放。

接下来给大家介绍一下服务端合流这种方式:

服务端合流

1、简介

该方案为服务端合流方案,主播端跟连麦端实时互动,主播端调用方法实时更新服务上的合流布局。

2、方案流程图

3、调用时序图

主播端:

流程: 主播初始化RTC后,并设置频道属性为直播模式,并设置自己的角色为主播,加入频道成功后,设置推流转码配置并设置推流地址进行推流。有用户上麦或者下麦更新推流配置即可,服务端根据配置是否更新合流的操作。

游客端:

流程: 游客初始化RTC后,初始化播放器,播放RTMP,申请连麦通过后,调用加入频道方法,加入频道成功后,停止播放RTMP。下麦后,调用leaveChannel,并调用播放器的播放进行播放RTMP流:

4、配套SDK

实时消息SDK: 使用RTM SDK 进行信令交互,申请连麦、同意、拒绝的消息送达。消息送到后座对应的逻辑处理。

实时音视频SDK: 使用RTC SDK 进行音视频通信,根据用户身份的角色使用配套的SDK

播放器类: 游客端调用,负责播放RTMP,当上麦的时候停止播放,并调用RTC的加入房间,当下麦的时候,离开频道,并继续调用播放器的播放。

Demo演示

主播端

游客端

demo功能介绍:

发送弹幕: 实时消息互动。

申请上麦: 申请上麦下麦。

音乐播放: 背景音乐跟主播声音进行混音播放。

控制音量: 可以调节音乐声、人声、和耳返的声音。

下载链接

Android端:https://www.pgyer.com/fRjW

iOS端:https://www.pgyer.com/PGLT

以上就是anyRTC语音连麦demo的大致介绍,欢迎大家下载体验。想了解更多关于音视频的信息咨询请关注anyRTC官网:https://www.anyrtc.io/

anyRTC-语音连麦demo上线相关推荐

  1. anyRTC视频连麦demo上线啦!

    音频连麦demo一经问世就得到开发者的一致好评,有很多开发者咨询视频连麦的demo该怎么去实现,本着让"视频交付更简单"的理念,我们推出了视频连麦demo! 音视频技术不仅局限用于 ...

  2. anyRTC语音开黑demo正式上线

    随着音视频行业的不断发展,从语音聊天,语音通话等软件逐渐衍生出了语音开黑,聊天房,和类似狼人杀这种语音类游戏.因为操作简单,受众面广,所以收到了很多人的喜欢. 一.语音开黑app的分类及玩法 游戏开黑 ...

  3. 架构集一---语音连麦聊天室实现方案分析

    前言 语音聊天基本是社交软件必备的功能,语音相比文字图片更丰富,比视频又更简便,是天然的社交工具.除了单纯的1对1语音或视频聊天,在实时音视频技术支持下,很多 APP 已经延伸出非常多的玩法. 目前比 ...

  4. 怎么和小伙伴语音连麦,你造吗?

    前段时间开发出一个语音连麦的小功能demo,平常自己玩玩,和小伙伴语音连麦,很好用,哈哈哈.使用的也是anyRTC的API功能.废话少说,开整! 不知道anyRTC的,可以点击这里了解官网,Andro ...

  5. 微信语音idk的demo学习

    微信语音idk的demo学习 1. if ([[[UIDevice currentDevice]systemVersion]floatValue]>=7) { NSLog(@"%f&q ...

  6. 神策数据新 DEMO 上线,助力零售行业数据分析

    在大数据浪潮下,零售行业自我发展的诉求愈发明显,与互联网化的脚步伴随而来的,是海量数据精益分析的需求.2017 年 2 月 20 日,著名电商企业阿里巴巴集团与零售老牌巨擘百联集团进行战略合作,也高调 ...

  7. 如何选择合适的语音聊天app开发方式实现语音连麦

    语音聊天app开发是以语音连麦为核心实现的社交系统,对于用户来说,良好的语音连麦功能,可以提高使用感,让用户可以坚持使用下去.为了提升语音连麦的使用体验,降低连麦延迟,语音聊天app开发会使用实时音视 ...

  8. 安卓投屏大师_手游主播看过来:手机投屏传声跟语音开麦问题解决方案都在这里了...

    安卓投屏怎么把手机声音传输到电脑?直播的时候怎么跟队友语音开麦?相信很多游戏主播在直播<和平精英>.<王者荣耀>.<QQ飞车>等手游的时候都遇到过这个问题:手机投屏 ...

  9. 【API解析】微软文本转语音(text-to-speech)官方Demo调用步骤

    [API解析]微软文本转语音(text-to-speech)官方Demo调用步骤 1. 来源 github: MsEdgeTTS 吾爱破解:微软语音助手免费版,支持多种功能,全网首发 微软Demo: ...

最新文章

  1. Swift 单元测试
  2. android真机上 conn.getOutputStream()异常 Does not support output
  3. 使用ueditor小结
  4. PHP array_count_values() 函数用于统计数组中所有值出现的次数。
  5. python 笔试题 英方_4000字转型数据分析师笔试面试经验分享
  6. Java RandomAccessFile writeLong()方法与示例
  7. vscode open in browser 默认浏览器
  8. PHP批量去除PHP文件中bom的代码
  9. NOIP2017后记
  10. 丁向荣单片机pdf_单片机原理与应用
  11. CCF CSP刷题—小中大
  12. 在一个线程中 sleep(1000) 方法,将使得该线程在多少时间后获得对 CPU 的控制(假设睡眠过程中不会有其他时间唤醒该线程)?
  13. 英语:日常用语中的错误表达和正确表达
  14. gii无法访问 yii2_yii框架中无法访问gii
  15. 网上书城之门户首页及新书上架,热销书籍
  16. 1109: 方块消除 blocks
  17. 多元线性回归及案例(Python)
  18. java计算机毕业设计公立医院绩效考核系统(附源码、数据库)
  19. 设计模式学习笔记(二十一:访问者模式)
  20. Git上传文件不能超过100M的解决办法

热门文章

  1. K-means算法详解
  2. 消费者喜欢奶茶,但不喝香飘飘
  3. #1055 : 刷油漆
  4. iPhone4翻新机愈演愈烈:回收价格高达4400元
  5. 前端开发必备技能知识笔记-二级目录的配置
  6. 微商管理系统---mysql相关操作整理
  7. element 表格合并单元格之后数据选择问题
  8. 用计算机程序计算兴利库容,兴利调节计算的计算机自动化实现.pdf
  9. 300-700题红题第二题
  10. 采用支持向量回归(SVR)和随机森林回归预测两种机器学习方法对房价进行预测(附完整代码)