技术分享| 音视频多频道使用的正确姿势
为方便用户同时加入多个频道,接收多个频道的音视频流,anyRTC 从底层架构给予支持多频道管理,且频道数量无限制,跟随我一起探讨多频道的奥秘吧~
在跟踪客户需求时,总能听到客户说单个频道支持的人数太少了;我想加入一个频道后不退出的情况下,加入其他频道听取下他们的内容;我想同时进多个频道进行监听;我想在大班课上课的同时,给小组分组上课;对讲;分屏监控...这些需求 anyRTC 统统可以满足了~
多频道架构
方案介绍
每个用户可以进入多个频道,且频道数量不限制,但只能在一个频道中发布音视频流,anyRTC 的回调中都会带有频道标识,开发者只需要做好本地管理即可。
实现方法
SDK 提供
ARtcChannel
类和ARtcChannelDelegate
类实现多频道控制。你可以多次调用createRtcChannel
,通过不同的channelId
创建多个ARtcChannel
对象(对应多个频道),然后分别调用ARtcChannel
中的joinChannelByToken
方法加入对应的频道。
实现多频道功能的主要步骤如下:
- 调用
sharedEngineWithAppId
方法,创建并初始化ARtcEngineKit
。 - 调用
setChannelProfile
方法,将频道场景设置为直播。 - 调用
createRtcChannel
方法,通过channelId
创建一个AgoraRtcChannel
对象。 - 调用
ARtcChannel
类的setRtcChannelDelegate
方法,接收该频道的回调通知。 - 调用
ARtcChannel
类的setClientRole
设置用户角色。 - 调用
ARtcChannel
类的joinChannelByToken
方法加入频道。用户加入频道后,默认自动订阅频道内所有其他用户的流。如果想发布自己的音视频流到该频道中,调用publish
方法发布。 - 如果需要加入更多的频道,重复步骤 3、4、5、6。
加入多个频道只能在一个频道中发布自己,在调用发布的时候,请确保在其他频道中角色为
Audience
,在要发布的频道中设置角色为Broadcaster
。
适用场景
场景1:大班课分组教学
大班课分组教学业界又叫超级小班课,其场景借鉴了视频会议里的breakout room功能,将大班进行分组,小组学习讨论,符合TBL的教学理念,既不浪费教师资源,又能满足个性体验。
一个主讲老师同时对多个小班进行授课,班内学生能够进行互动交流,促进学习。
场景2:互联网对讲
互联网对讲已经逐步进入公共视野,传统的对讲机已经慢慢的被淘汰,传统对讲机面临距离限制、噪声严重、同时只能订阅一个频道等多重问题。anyRTC 互联网对讲方案支持全球对讲,采用AI降噪,凸显人声消除噪声,同时支持同时加入多个频道。
互联网对讲方案已经运用到了智慧小区、智慧调度等行业
更多场景玩法期待开发者发掘~

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
ClickHouse 存算分离架构探索
背景 ClickHouse 作为开源 OLAP 引擎,因其出色的性能表现在大数据生态中得到了广泛的应用。区别于 Hadoop 生态组件通常依赖 HDFS 作为底层的数据存储,ClickHouse 使用本地盘来自己管理数据,官方推荐使用 SSD 作为存储介质来提升性能。但受限于本地盘的容量上限以及 SSD 盘的价格,用户很难在容量、成本和性能这三者之间找到一个好的平衡。JuiceFS 的某个客户近期就遇到了这样的难题,希望将 ClickHouse 中的温冷数据从 SSD 盘迁移到更大容量、更低成本的存储介质,更好地支撑业务查询更长时间数据的需求。 JuiceFS 是基于对象存储实现并完全兼容 POSIX 的开源分布式文件系统,同时 JuiceFS 的数据缓存特性可以智能管理查询热点数据,非常适合作为 ClickHouse 的存储系统,下面将详细介绍这个方案。 MergeTree 存储格式简介 在介绍具体方案之前先简单了解一下 MergeTree 的存储格式。MergeTree 是 ClickHouse 最主要使用的存储引擎,当创建表时可以通过 PARTITION BY 语句指定以某一个或...
- 下一篇
求求你了,用Docker吧
这是一个开始使用 Docker 的 Tutorial 大无语事件发生!大数据课实验课要用到Hadoop,实验指导是在一个Unbuntu虚机上通过安装包安装Hadoop并运行一个词频统计程序,整个实验就是安装环境,做了4h才把环境搭好。因为我不想装虚拟机用centos云服务器的,期间遇到centos没有sudo用户组问题,遇到文件目录结构不一样等等各种问题,在解决这些问题上消磨了大量时间精力,而在解决这些问题的时候却没有实质性的知识提升和效果产出。每每在这个时候我就想,要是有Docker就好了。 Docker 的好处 粗浅的说,Docker 是一个生产效率工具,他最大的应用价值是抹平不同机器,不同系统的差距,所有程序运行在Docker的平台下,就可以做到两件很重要的事: 简化开发环境配置 方便不同系统(Linux服务器,Mac或者Windows开发机),不同环境(生产环境,预发环境和开发环境)的程序部署迁移 1. 安装 Docker 因为在不同环境中安装有不同的方式,Docker 官网的指引很好,所以在这里给出安装方式的文档链接和在Centos下安装的流程。 正常情况下, 只需要配置do...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果