为方便用户同时加入多个频道,接收多个频道的音视频流,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降噪,凸显人声消除噪声,同时支持同时加入多个频道。
互联网对讲方案已经运用到了智慧小区、智慧调度等行业
更多场景玩法期待开发者发掘~
{{m.name}}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/199692.html